Abfragen ob es LPT 2 gibt.
-
Hallo zusammen,
ich hoffe nicht das ich hier 100 % falsch bin. Deshalb habe ich mal eine frage
gibt es eine funktion mit der ich überprüfen kann ob es eine 2ten oder 3ten
Lpt-Port gibt.Nach dem durch Forsten des Forum habe ich mir folgenden Lösung ausgedacht.
HANDLE Lpt1Han = CreateFile("\\\\.\\LPT1",GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); HANDLE Lpt2Han = CreateFile("\\\\.\\LPT2",GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); HANDLE Lpt3Han = CreateFile("\\\\.\\LPT3",GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); if ((unsigned long)Lpt1Han <= 4294967290) // FFFFFFFF = 4294967290 { Memo3->Lines->Add("Lpt1 vorhanden"); CloseHandle(Lpt1Han); } if ((unsigned long)Lpt2Han <= 4294967290) { Memo3->Lines->Add("Lpt2 vorhanden"); CloseHandle(Lpt2Han); } if ((unsigned long)Lpt3Han <= 4294967290) { Memo3->Lines->Add("Lpt1 vorhanden"); CloseHandle(Lpt2Han); }
oder gibt es eine bessere Lösung ?
mfg
Burlington
-
Keine Ahnung, ob's einen besseren Ansatz gibt, besser schreiben kann man das aber durchaus. Zum Beispiel:
for (int i = 1; i <= 6; i++) { String strLPT = "\\\\.\\LPT" + String(i); HANDLE hLPT = CreateFile(strLPT.c_str(),GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); if (hLPT != INVALID_HANDLE_VALUE) { CloseHandle(hLPT); Memo1->Lines->Add("found LPT" + String(i)); } }
-
wenns überhaupt einen Weg gibt, so bestimmt nicht in VCL...
Ich glaube mal irgendwo gelesen zu haben, dass man sowas mit EnumPorts() machen kann...
Ab nach WinAPI...
[ Dieser Beitrag wurde am 10.07.2003 um 08:50 Uhr von junix editiert. ]