能力值:
( LV2,RANK:10 )
|
-
-
2 楼
#include <stdio.h>
#include <windows.h>
int main(int argc, char *argv[])
{
INPUT_RECORD ir;
DWORD nRead = 0;
HANDLE hFile = GetStdHandle(STD_INPUT_HANDLE);
for(;;){
switch(WaitForSingleObject(hFile,1000)){
case WAIT_OBJECT_0:
while(PeekConsoleInput(hFile,&ir,1,&nRead) && nRead == 1){
printf("LastError:%d,nRead:%d\n",GetLastError(),nRead);
if(ir.EventType == KEY_EVENT){
printf("Key event.\n");
printf("Key %c\n",ir.Event.KeyEvent.uChar.AsciiChar);
if(ir.Event.KeyEvent.bKeyDown)printf("Key down.\n");
else printf("Key up.\n");
}
ReadConsoleInput(hFile,&ir,1,&nRead);
}
break;
case WAIT_TIMEOUT:
printf("nothing.\n");
break;
default:
printf("unexpected\n");
}
}
return 0;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
上面这个就是例子。
话说我打开一个已存在的句柄,例如打开一个文件内存映射对象,或者通过GetStdHandle得到标准输入等等的,虽然函数调用成功了,但是LastErrorCode仍然不是ERROR_SUCCESS,有没有高手愿意解释下这么设计的用意?
|
|
|