| Win32 - Interfaces à quelques fonctions de l'API Win32 |
Win32 - Interfaces à quelques fonctions de l'API Win32
Perl sous Win32 contient plusieurs fonctions pour accéder à des APIs Win32. Quelques-unes sont incluses dans Perl lui-même (sous Win32) et quelques autres ne sont disponibles seulement qu'après avoir appelé le module Win32 explicitement :
use Win32;
Dans la liste alphabétique suivante, les fonctions intégrées sont marquées [CORE] et les autres [EXT].
unlink() vous-même.
%NomDeVariable%. La casse est ignorée pendant la recherche de NomDeVariable
dans l'environnement. Si la variable n'est pas trouvée alors le texte original
%NomDeVariable% est retenu. A le même effet que :
$chaine =~ s/%([^%]*)%/$ENV{$1} || "%$1%"/eg
perror() de la bibliothèque standard C. Notez que $^E
utilisé dans un contexte scalaire à le même effet.
C:\> perl -e "$^E = 26; print $^E;"
Impossible d'accéder au disque ou à la disquette spécifié
0x00000001 supporte la casse des noms de fichier 0x00000002 préserve la casse des noms de fichier 0x00000004 supporte Unicode dans les noms de fichier 0x00000008 préserve et fixe les ACLs (Access Control List) 0x00000010 supporte la compression des fichiers 0x00000020 supporte les quotas sur les disques 0x00000040 supporte les fichiers dispersés (sparse files) 0x00000080 supporte les 'reparse points' 0x00000100 supporte le stockage à distance 0x00008000 est un volume compressé (ex: DoubleSpace) 0x00010000 supporte les identificateurs d'objet 0x00020000 supporte l' EFS (Encrypted File System)
MAXCOMPLEN est la longueur maximum d'un composant de nom de fichier (la portion entre deux backslashes) du système de fichiers.
CSIDL_ADMINTOOLS
CSIDL_APPDATA
CSIDL_CDBURN_AREA
CSIDL_COMMON_ADMINTOOLS
CSIDL_COMMON_APPDATA
CSIDL_COMMON_DESKTOPDIRECTORY
CSIDL_COMMON_DOCUMENTS
CSIDL_COMMON_FAVORITES
CSIDL_COMMON_MUSIC
CSIDL_COMMON_PICTURES
CSIDL_COMMON_PROGRAMS
CSIDL_COMMON_STARTMENU
CSIDL_COMMON_STARTUP
CSIDL_COMMON_TEMPLATES
CSIDL_COMMON_VIDEO
CSIDL_COOKIES
CSIDL_DESKTOP
CSIDL_DESKTOPDIRECTORY
CSIDL_FAVORITES
CSIDL_FONTS
CSIDL_HISTORY
CSIDL_INTERNET_CACHE
CSIDL_LOCAL_APPDATA
CSIDL_MYMUSIC
CSIDL_MYPICTURES
CSIDL_MYVIDEO
CSIDL_NETHOOD
CSIDL_PERSONAL
CSIDL_PRINTHOOD
CSIDL_PROFILE
CSIDL_PROGRAMS
CSIDL_PROGRAM_FILES
CSIDL_PROGRAM_FILES_COMMON
CSIDL_RECENT
CSIDL_RESOURCES
CSIDL_RESOURCES_LOCALIZED
CSIDL_SENDTO
CSIDL_STARTMENU
CSIDL_STARTUP
CSIDL_SYSTEM
CSIDL_TEMPLATES
CSIDL_WINDOWS
Notez que tous ces répertoires ne sont pas définis pour toutes les versions de Windows.
Reportez-vous, s'il vous plait, à la documentation MSDN des constantes CSIDL, disponible actuellement à:
$^E, utilisé dans un contexte
numérique, donne la même valeur.
Les valeurs actuellement connues pour ID MAJOR et MINOR sont :
OS ID MAJOR MINOR
Win32s 0 - -
Windows 95 1 4 0
Windows 98 1 4 10
Windows Me 1 4 90
Windows NT 3.51 2 3 51
Windows NT 4 2 4 0
Windows 2000 2 5 0
Windows XP 2 5 1
Windows Server 2003 2 5 2
Sous Windows NT 4 SP6 et suivants cette fonction retourne les valeurs additionnelles suivantes : SPMAJOR, SPMINOR, SUITEMASK, PRODUCTTYPE.
SPMAJOR et SPMINOR sont les numéros de version du dernier «service pack» installé.
SUITEMASK est un champ de bits qui identifie les «suites» disponibles sur le système. Les bits connus sont :
VER_SUITE_SMALLBUSINESS 0x00000001
VER_SUITE_ENTERPRISE 0x00000002
VER_SUITE_BACKOFFICE 0x00000004
VER_SUITE_COMMUNICATIONS 0x00000008
VER_SUITE_TERMINAL 0x00000010
VER_SUITE_SMALLBUSINESS_RESTRICTED 0x00000020
VER_SUITE_EMBEDDEDNT 0x00000040
VER_SUITE_DATACENTER 0x00000080
VER_SUITE_SINGLEUSERTS 0x00000100
VER_SUITE_PERSONAL 0x00000200
VER_SUITE_BLADE 0x00000400
VER_SUITE_EMBEDDED_RESTRICTED 0x00000800
VER_SUITE_SECURITY_APPLIANCE 0x00001000
Les noms VER_SUITE_xxx ci-dessus ne sont listés que pour référence à la documentation Microsoft. Le module Win32 ne fournit pas de noms symboliques pour ces constantes.
PRODUCTTYPE fournit une information supplémentaire à propos du système. Ce peut être une des valeurs entières suivantes :
1 - Workstation (NT 4, 2000 Pro, XP Home, XP Pro)
2 - Domaincontroller
3 - Server
GetOSVersion() en
contexte de liste.
Actuellement, les valeurs possibles pour le nom de l'OS sont :
Win32s Win95 Win98 WinMe WinNT3.51 WinNT4 Win2000 WinXP/.Net Win2003
Cette routine est juste une interface simple à GetOSVersion(). Les demandes plus spécifiques ou plus exigeantes devraient utiliser cette dernière fonction. Une autre option serait d'utiliser POSIX::uname(), cependant cette fonction semble ne rapporter que le nom de famille de l'OS et non pas son nom spécifique. En contexte scalaire, elle retourne juste le ID.
Le nom «WinXP/.Net» est utilisé seulement pour des raisons historiques, afin de maintenir la compatibilité avec les version antérieures du module Win32. «Windows .NET Server» a été renommé «Windows 2003 Server» avant la version finale et utilise des numéros de version majeur/mineur différents de ceux de Windows XP.
0 = OK
1 = OK et Annuler
2 = Abandonner, Recommencer et Ignorer
3 = Oui, Non et Ignorer
4 = Oui et Non
5 = Recommencer et Annuler
MB_ICONSTOP "X" dans un cercle rouge
MB_ICONQUESTION point d'interrogation dans une bulle
MB_ICONEXCLAMATION point d'exclamation dans un triangle jaune
MB_ICONINFORMATION "i" dans une bulle
TITRE spécifie un titre optionnel pour la fenêtre. La valeur par défaut est «Perl».
La fonction retourne l'id-menu du bouton qui a été pressé :
0 Erreur
1 OK
2 Annuler
3 Abandonner
4 Recommencer
5 Ignorer
6 Oui
7 Non
system() crée une nouvelle fenêtre console pour le
processus fils si Perl lui-même ne tourne pas depuis une console. L'appel
de SetChildShowWindow(0) rendra ces nouvelles consoles invisibles. L'appel
SetChildShowWindow() sans argument ramène system() à son comportement par
défaut. La valeur retournée par SetChildShowWindow() est sa valeur
précédente ou undef.
[EXT] Les constantes symboliques suivantes pour SHOWWINDOW sont disponibles (mais non exportées) par le module Win32: SW_HIDE, SW_SHOWNORMAL, SW_SHOWMINIMIZED, SW_SHOWMAXIMIZED et SW_SHOWNOACTIVATE.
Cette traduction française correspond à la version anglaise distribuée avec perl 5.8.4. Pour en savoir plus concernant ces traductions, consultez http://www.enstimac.fr/Perl/ .
Jean-Louis Morel <jl_morel@bribes.org>
| Win32 - Interfaces à quelques fonctions de l'API Win32 |