008
03.06.2004, 11:56 Uhr
~toxic
Gast
|
hi, warum so umständlich ? machs doch mit CreateFile(...) und GetLastError() entsprechend dem fehlercode giebts den port und er ist frei ( :0 ), oder besetzt (access denied : 5) oder nicht vorhanden ( :2 ).
C++: |
void CDeinDlg::TestePorts() { CString name = ""; for (int i = 1; i < 20; i++) { name.Format("COM%d", i); HANDLE h_testCom = CreateFile(("\\\\.\\"+name), GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0 , NULL); if ((h_testCom != INVALID_HANDLE_VALUE) && (!GetLastError())) ((CComboBox*)GetDlgItem(IDC_COMBO1))->AddString(name); name.Format("COM%d ... GetLastError : %d\r\n", i, GetLastError()); AfxMessageBox(name);
CloseHandle(h_testCom); } }
|
-- grusz |