可以攔截鍵盤上的按鍵(例: esc、space、enter、tab、Caps Lock、Ctrl、F4、......)或滑鼠移動、點擊的事件
在這裡我使用攔截鍵盤按鍵來當作示範,所以使用到KEY_EVENT(其他的事件攔截請點選下面的INPUT_RECORD連結)
會使用到windows.h內的幾個Method,建議先稍微了解一下
#include <stdio.h>
#include <windows.h>
int main()
{
HANDLE handle;
DWORD cnt;//儲存出入
DWORD mode;//Console Mode
INPUT_RECORD input;
handle = GetStdHandle(STD_INPUT_HANDLE);//先取得基本輸入Handle
GetConsoleMode(handle, &mode);//得到基本輸入的Mode
SetConsoleMode(handle, mode & ~ENABLE_LINE_INPUT);//設定基本輸入模式,其中~ENABLE_LINE_INPUT代表不用按下Enter也可動作
while(ReadConsoleInput(handle, &input, 1, &cnt))//開始讀取使用者的動作
{
if(input.EventType == KEY_EVENT)
{
if(input.Event.KeyEvent.bKeyDown == TRUE)
{
if(input.Event.KeyEvent.wVirtualKeyCode == VK_CAPITAL)//大寫鎖定
printf("CAPITAL\n");
else if (input.Event.KeyEvent.wVirtualKeyCode == VK_RETURN)//Enter按鍵
printf("Enter\n");
else if (input.Event.KeyEvent.wVirtualKeyCode == VK_CONTROL)//Ctrl
printf("Ctrl\n");
else if (input.Event.KeyEvent.wVirtualKeyCode == VK_F4)//F4
printf("F4\n");
else if (input.Event.KeyEvent.wVirtualKeyCode == VK_TAB)//Tab
printf("Tab\n");
else if (input.Event.KeyEvent.wVirtualKeyCode == VK_ESCAPE)//Esc
printf("Esc\n");
}
}
}
return 0;
}
留言列表