日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

SendInput代替了keybd_event

發(fā)布時(shí)間:2024/4/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SendInput代替了keybd_event 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

SendInput比keybd_event要方便多了,可以支持發(fā)送中文。

#include <atlconv.h> #pragma comment(lib,"User32.lib") #pragma comment(lib,"shlwapi.lib")void SendAscii(wchar_t data, BOOL shift) {INPUT input[2];memset(input, 0, 2 * sizeof(INPUT));if (shift){input[0].type = INPUT_KEYBOARD;input[0].ki.wVk = VK_SHIFT;SendInput(1, input, sizeof(INPUT));}input[0].type = INPUT_KEYBOARD;input[0].ki.wVk = data;input[1].type = INPUT_KEYBOARD;input[1].ki.wVk = data;input[1].ki.dwFlags = KEYEVENTF_KEYUP;SendInput(2, input, sizeof(INPUT));if (shift){input[0].type = INPUT_KEYBOARD;input[0].ki.wVk = VK_SHIFT;input[0].ki.dwFlags = KEYEVENTF_KEYUP;SendInput(1, input, sizeof(INPUT)); } }void SendUnicode(wchar_t data) {INPUT input[2];memset(input, 0, 2 * sizeof(INPUT));input[0].type = INPUT_KEYBOARD;input[0].ki.wVk = 0;input[0].ki.wScan = data;input[0].ki.dwFlags = 0x4;//KEYEVENTF_UNICODE;input[1].type = INPUT_KEYBOARD;input[1].ki.wVk = 0;input[1].ki.wScan = data;input[1].ki.dwFlags = KEYEVENTF_KEYUP | 0x4;//KEYEVENTF_UNICODE;SendInput(2, input, sizeof(INPUT)); }//為方便使用,下面這個(gè)函數(shù)包裝了前兩個(gè)函數(shù)。 void SendKeys(TCHAR *strMsg) {short vk;BOOL shift;USES_CONVERSION;wchar_t* data = T2W(strMsg);int len = wcslen(data);for(int i=0;i<len;i++){if (data[i]>=0 && data[i]<256) //ascii字符{vk = VkKeyScanW(data[i]);if (vk == -1){SendUnicode(data[i]);}else{if (vk < 0){vk = ~vk + 0x1;}shift = vk >> 8 & 0x1;if (GetKeyState(VK_CAPITAL) & 0x1){if (data[i]>='a' && data[i]<='z' || data[i]>='A' && data[i]<='Z'){shift = !shift;}}SendAscii(vk & 0xFF, shift);}}else //unicode字符{SendUnicode(data[i]);}} }int _tmain(int argc, _TCHAR* argv[]) {Sleep(5000);SendKeys(L"Sysprogram 測(cè)試中文");return 0; }

總結(jié)

以上是生活随笔為你收集整理的SendInput代替了keybd_event的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。