GetCommState всегда false

Я пытался создать простую консольную программу, которая считывает все сигналы от моей мыши, подключенной через USB. Я столкнулся с проблемой: GetCommState (nCom, &dcb) всегда возвращает ноль, что не очень полезно для моей задачи.
Вот код:

int _tmain(int argc, TCHAR *argv[]) {
DCB dcb;
HANDLE hCom;
BOOL fSuccess;
TCHAR *pcCommPort = TEXT("\\\\.\\HCD0"); //  USB name

//  Open a handle to the specified com port.
hCom = CreateFile(pcCommPort,
GENERIC_READ | GENERIC_WRITE,
0,      //  must be opened with exclusive-access
NULL,   //  default security attributes
OPEN_EXISTING, //  must use OPEN_EXISTING
0,      //  not overlapped I/O
NULL); //  hTemplate must be NULL for comm devices

if (hCom == INVALID_HANDLE_VALUE) {
//  Handle the error.
printf("CreateFile failed with error %d.\n", GetLastError());
Sleep(15000);
return (1);
}

//  Initialize the DCB structure.
SecureZeroMemory(&dcb, sizeof(DCB));
dcb.DCBlength = sizeof(DCB);//  Build on the current configuration by first retrieving all current
//  settings.
fSuccess = GetCommState(hCom, &dcb);

if (!fSuccess) {
//  Handle the error.
printf("GetCommState failed with error %s.\n", GetLastError());

printf("Cannot get first time");
Sleep(12000);
return (2);
}
.......

GetLastError () возвращает 1, но скрытие этой проблемы не дало мне никаких результатов.

Это просто копия из примера msdn, но оказывается, что он не работает для меня.

Скажите, пожалуйста: что я должен изменить, чтобы он возвращал ненулевое значение и позволил мне перейти к другой части задачи.

0

Решение

USB-мыши не имеют ничего общего с COM-портами, поэтому GetCommState не имеет никакого смысла вообще.

Серийная мышь древний Оборудование, которое устарело примерно с 1995 года. Современные USB-мыши основаны на протоколе USB HID.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]