Comment lister tous les ports séries

Demandé et répondu par Drcharly93 le 03-May-2007 19:00

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

Cette Q&R a été trouvée sur WDForge.org : http://old.wdforge.org/modules/smartfaq/faq.php?faqid=136