Accueil > FAQ > WinDev API | FAQ |
Demandé et répondu par Drcharly93 le 03-May-2007 19:00 (5453 Lectures)
Comment lister tous les ports séries
Ce code à été récupéré sur le forum de PCSoft.
PROCEDURE enumPortCOM()
port2 est composé de
pPortName est un entier
pMonitorName est un entier
pDescription est un entier
fPortType est un entier
Reserved est un entier
FIN
cbBuff est un entier
pbNeeded est un entier
pcReturned est un entier
szListePortCOM est une chaîne
AppelDLL32("winspool.drv","EnumPortsA",Null,2,Null,cbBuff,&pbNeeded,&pcReturned)
hmem est un entier = AppelDLL32("kernel32","GlobalAlloc",0x40,pbNeeded)
cbBuff = pbNeeded
AppelDLL32("winspool.drv","EnumPortsA",Null,2,hmem,cbBuff,&pbNeeded,&pcReturned)
ind est un entier
port est une chaîne ASCIIZ sur 64
ch est une chaîne
adr est un entier = hmem
POUR ind = 1 A pcReturned
AppelDLL32("kernel32","RtlMoveMemory",&port2,adr,20)
AppelDLL32("kernel32","RtlZeroMemory",&port,64)
AppelDLL32("kernel32","RtlMoveMemory",&port,port2.pPortName,64)
ch = port
// AppelDLL32("kernel32","RtlZeroMemory",&port,64)
// AppelDLL32("kernel32","RtlMoveMemory",&port,port2.pMonitorName,64)
// ch += port + " - "
//
// AppelDLL32("kernel32","RtlZeroMemory",&port,64)
// AppelDLL32("kernel32","RtlMoveMemory",&port,port2.pDescription,64)
// ch += port + " - "
SI ch[[A 3]] = "COM" ALORS
szListePortCOM += Gauche(ch,4) + RC
FIN
adr += 20
FIN
AppelDLL32("kernel32","GlobalFree",hmem)
RENVOYER szListePortCOM
|