logo

Knowledge Is Power

 
 

- Reinit des nouveaux posts -

- Recherche -

Messages Privés - Derniers posts
S'enregistrer - Login - Liste des membres
Vous logger : Login Pass

OS (non Unix) >> Win32 - Interfaces à quelques fonctions de l'API Win32 Newtopic | Reply
poster txt
Morgomir54
Inscrit le 22-05-2009
Avatar
Posté le 29-07-2010 11:10

Voilà j'ai trouvé un petit truc sympa a vous d'en juger:



Code:


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].


Liste alphabétique des fonctions Win32
Win32::AbortSystemShutdown(MACHINE)

[EXT] Interrompt un arrêt du système (lancé par la fonction InitiateSystemShutdown) sur la MACHINE spécifiée.

Win32::BuildNumber()

[CORE] Retourne le numéro de construction d'ActivePerl. Cette fonction n'est disponible que pour la distribution binaire d'ActivePerl.

Win32::CopyFile(SOURCE, DESTINATION, ECRASER)

[CORE] La fonction Win32::CopyFile() copie un fichier existant vers un nouveau fichier. Toute les informations du fichier comme sa date de création et ses attributs seront copiées sur le nouveau fichier. Cependant les informations de sécurité ne sont pas copiées. Si le fichier de destination existe déjà, il ne sera récrit que si le paramètre ECRASER est vrai. Toutefois, sur un fichier protégé contre l'écriture la copie n'aura pas lieu ; vous devrez d'abord utiliser unlink() vous-même.

Win32::DomainName()

[CORE] Retourne le nom de domaine du Réseau Microsoft dans lequel se trouve le propriétaire du processus. Cette fonction ne fonctionne pas sous Windows 9x.

Win32::ExpandEnvironmentStrings(CHAINE)

[EXT] Prend CHAINE et remplace toutes les variables d'environnement rencontrées par leurs valeurs. Les références aux variables de l'environnement prennent la forme %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
Win32::FormatMessage(CODEERREUR)

[CORE] Convertit le numéro d'erreur fourni ( par exemple par Win32::GetLastError()) en une chaîne descriptive. Analogue à la fonction 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é
Win32::FsType()

[CORE] Retourne le nom du système de fichiers du lecteur actif courant (comme 'FAT' ou 'NTFS'). En contexte de liste, renvoie trois valeurs : (FSTYPE, FLAGS, MAXCOMPLEN). FSTYPE est le nom du système de fichier comme précédemment. FLAGS est une combinaison de valeurs prises dans la table suivante :
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.


Win32::FreeLibrary(HANDLE)

[EXT] Décharge une bibliothèque à lien dynamique (dll). Le HANDLE n'est plus valide après cet appel. Voir LoadLibrary pour des informations concernant le chargement dynamique d'une bibliothèque.

Win32::GetArchName()

[EXT] L'utilisation de cette fonction est désapprouvée. Equivalent à $ENV{PROCESSOR_ARCHITECTURE}. Ne marche pas sous Win9X.

Win32::GetChipName()

[EXT] Retourne le type du processeur : 386, 486 ou 586 pour les processeur Intel, 21064 pour les puces Alpha.

Win32::GetCwd()

[CORE] Retourne le répertoire courant. Cette fonction ne retourne pas un chemin UNC puisque les fonctionnalités requises pour une telle fonction ne sont pas disponibles sous Windows 95.

Win32::GetFolderPath(FOLDER [, CREATE])

[EXT] Retourne le chemin complet d'un des répertoire spéciaux de Windows. Le répertoire sera créé s'il n'existe pas et si l'argument optionnel CREATE est vrai. Les constantes FOLDER suivantes sont définies par le module Win32 mais ne sont exportées que sur demande :
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.







Code:


Win32::GetFullPathName(NOMFICHIER)

[CORE] GetFullPathName combine le NOMFICHIER avec le nom du répertoire courant et retourne un chemin pleinement qualifié (c-à-d absolu). En contexte de liste, deux éléments (CHEMIN, FILE) sont retournés, où CHEMIN est le nom de chemin complet (y compris le dernier backslash) et FILE est juste le nom de fichier. Rien n'est fait pour convertir les composants 8.3 dans le NOMFICHIER fourni en noms longs ou vice-versa. Comparez avec Win32::GetShortPathName et Win32::GetLongPathName.

Win32::GetLastError()

[CORE] Retourne le numéro de la dernière erreur engendrée par un appel à une fonction de l'API Win32. Notez que $^E, utilisé dans un contexte numérique, donne la même valeur.

Win32::GetLongPathName(NOMCHEMIN)

[CORE] Retourne une représentation de NOMCHEMIN qui utilise des composants de noms longs (si possible). Le résultat n'est pas nécessairement plus long que NOMCHEMIN. Rien n'est fait pour convertir NOMCHEMIN en chemin absolu. Comparez avec Win32::GetShortPathName et Win32::GetFullPathName.

Win32::GetNextAvailDrive()

[CORE] Retourne une chaîne de la forme «<d>:» où <d> est la lettre du premier lecteur libre.

Win32::GetOSVersion()

[CORE] Retourne le tableau (STRING, MAJOR, MINOR, BUILD, ID), dont les éléments sont, respectivement : une chaîne de description arbitraire, le numéro majeur du système d'exploitation, le numéro mineur, le numéro de construction, un chiffre indiquant le système d'exploitation actuel. Les valeurs pour ID sont 0 pour Win32s, 1 pour Windows 9X/Me et 2 pour Windows NT/2000/XP/2003. En contexte scalaire, la fonction retourne juste ID.
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 2Sous 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 0x00001000Les 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
Win32::GetOSName()

[EXT] En contexte scalaire, retourne le nom du système d'exploitation Win32 utilisé. En contexte de liste, retourne une liste à deux éléments dont le premier est le nom du système d'exploitation et le second est composé de l'édition (pour Win9x) ou des «service packs» installés. Ce dernier élément est, en gros, équivalent au premier item retourné par 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 Win2003Cette 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.


Win32::GetShortPathName(NOMCHEMIN)

[CORE] Retourne une représentation de NOMCHEMIN composée seulement de composants en noms courts (8.3).Le résultat n'est pas nécessairement plus court que NOMCHEMIN. Comparez avec Win32::GetFullPathName et Win32::GetLongPathName.

Win32::GetProcAddress(INSTANCE, PROCNAME)

[EXT] Retourne l'adresse d'une fonction interne d'une bibliothèque chargée. L'information sur ce qu'on peut faire avec cette adresse a été perdue dans la nuits des temps. Utilisez le module Win32::API au lieu de cette fonction dépréciée.

Win32::GetTickCount()

[CORE] Retourne le nombre de millisecondes écoulée depuis le dernier démarrage du système. La résolution est limitée par le rythme du battement de l'horloge du système (à peu près 10ms sur WinNT et 55ms sur Win9X).

Win32::InitiateSystemShutdown(MACHINE, MESSAGE, TIMEOUT, FORCECLOSE, REBOOT)

[EXT] Arrête la MACHINE spécifiée, en prévenant les utilisateurs avec le MESSAGE fourni, dans l'intervalle de temps précisé par TIMEOUT. Force la fermeture de tous les documents sans demander aux utilisateurs si FORCECLOSE est vrai, et redémarre la machine si REBOOT est vrai. Cette fonction ne fonctionne que sur WinNT.

Win32::IsAdminUser()

[EXT] Retourne non zéro si le compte, dans le contexte de sécurité duquel tourne le processus/thread, appartient au groupe local d'Administrateurs du domaine système intégré; retourne 0 sinon. Retourne undef et affiche un warning si une erreur se produit. Cette fonction retourne toujours 1 sous Win9x.

Win32::IsWinNT()

[CORE] Retourne une valeur non nulle si le sous-système Win32 est Windows NT.

Win32::IsWin95()

[CORE] Retourne une valeur non nulle si le sous-système Win32 est Windows 95.

Win32::LoadLibrary(LIBNAME)

[EXT] Charge en mémoire une bibliothèque à liens dynamiques (dll) et retourne son handle de module. Ce handle peut être utilisé avec Win32::GetProcAddress et Win32::FreeLibrary. Cette fonction est dépréciée. Utilisez le module Win32::API à la place.

Win32::LoginName()

[CORE] Retourne le nom d'utilisateur du propriétaire du processus perl courant.

Win32::LookupAccountName(SYSTEM, ACCOUNT, DOMAIN, SID, SIDTYPE)

[EXT] Recherche ACCOUNT sur le SYSTEM et retourne le nom de domaine, le SID (Security IDentifier) et le type de SID.

Win32::LookupAccountSID(SYSTEM, SID, ACCOUNT, DOMAIN, SIDTYPE)

[EXT] Recherche SID sur le SYSTEM et retourne le nom de compte, le nom de domaine et le type de SID.

Win32::MsgBox(MESSAGE [, FLAGS [, TITRE]])

[EXT] Crée une boîte de dialogue contenant le MESSAGE. FLAGS spécifie l'icône et les boutons exigés d'après la table suivante :
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 bulleTITRE 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
Win32::NodeName()

[CORE] Retourne le nom du noeud du Réseau Microsoft de la machine courante.

Win32::RegisterServer(LIBRARYNAME)

[EXT] Charge la DLL LIBRARYNAME et appelle la fonction DllRegisterServer.

Win32::SetChildShowWindow(SHOWWINDOW)

[CORE] Fixe la valeur du paramètre ShowMode des processus fils démarrés par system(). Par défaut 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.


Win32::SetCwd(NEWDIRECTORY)

[CORE] Fixe le répertoire courant actif. Cette fonction ne marche pas avec les chemins UNC puisque les fonctionnalités requises pour une telle fonction ne sont pas disponibles sous Windows 95.

Win32::SetLastError(ERROR)

[CORE] Fixe la valeur de la dernière erreur rencontrée à ERROR. C'est cette valeur qui sera retournée par la fonction Win32::GetLastError().

Win32::Sleep(TIME)

[CORE] Fait une pause de TIME millisecondes. Les intervalles de temps sont rendus disponibles aux autres processus et aux threads.

Win32::Spawn(COMMAND, ARGS, PID)

[CORE] Engendre un nouveau processus qui utilise la COMMANDe indiquée, en lui passant ses arguments dans la chaîne ARGS. Le pid du nouveau processus est placé dans PID. Cette fonction est dépréciée. S'il vous plaît, utilisez le module Win32::Process à la place.

Win32::UnregisterServer(LIBRARYNAME)

[EXT] Charge la DLL LIBRARYNAME et appelle la fonction DllUnregisterServer.




[ Ce Message a été édité par: Morgomir54 le 2010-07-29 11:12 ]
profil | edit | quote
jehovah
Inscrit le 23-07-2010
Avatar
Posté le 29-07-2010 18:16

toi tu decouvre la doc perl http://www.bribes.org/perl/docfr/
sinon fait une recherche sur learning perl on win32 pour avoir des exemple plus proche de son utilisation.
_________________________
TG
profil | edit | quote
Newtopic | Reply

Online : Kelvinlor, Kmecftousy, SusanAlase et 83 Guests


Retour Index NewFFR Repository : http://taz.newffr.com
Cagades à Stick : http://alcane.newffr.com
Forum HTML et Archive -> ici
ForumFR Sql/Xml (2006/04) (SF pas à jour du tout...) - Alive since 2001 Newffr.com
Pour toute plainte ou problème -> Contacter Borax, Hyatus, Tweakie ou Stick par message privé (ou Gueulez sur le forum :) )
Retour haut de page