Quote:
Originariamente inviato da cionci
|
Sì, è vero. Però enumera le porte relative al sistema di stampa.
Ho scritto questo codice "C" di prova:
Codice:
#define STRICT
#include <windows.h>
#include <stdio.h>
int main (void)
{
PORT_INFO_1 *ppi;
DWORD dwSize, dwCount, dwIdx;
BOOL bRet;
bRet = EnumPorts (NULL, 1, NULL, 0, &dwSize, &dwCount);
if (bRet == FALSE && GetLastError () == ERROR_INSUFFICIENT_BUFFER)
{
ppi = (PORT_INFO_1*) GlobalAlloc (GPTR, dwSize);
if (ppi != NULL)
{
bRet = EnumPorts (NULL, 1, (LPBYTE) ppi, dwSize, &dwSize, &dwCount);
if (bRet)
{
for (dwIdx=0; dwIdx<dwCount; dwIdx++)
printf ("Nome: %s\n", ppi[dwIdx].pName);
}
GlobalFree ((HGLOBAL) ppi);
}
}
return 0;
}
Sul mio PC stampa:
Nome: MSFAX:
Nome: PDFCreator:
Nome: OLFModem
Nome: COM1:
Nome: COM2:
Nome: COM3:
Nome: COM4:
Nome: FILE:
Nome: LPT1:
Nome: LPT2:
Nome: LPT3:
Nome: DocuCom PDF Port:
Nome: HPLaserJet1022nw
Nome: CPW2:
Il che, forse, non è molto utile anche perché, ad esempio, COM4 fisicamente non esiste sul mio PC.