2
我知道AutoHotKey,但我想爲自己製作自己的程序。使其每10秒按一次F5。我搜索了互聯網和堆棧溢出,但沒有找到解決方案如何模擬按鍵
有沒有辦法做到這一點在C或不?我正在使用和定位Windows 8.1
我知道AutoHotKey,但我想爲自己製作自己的程序。使其每10秒按一次F5。我搜索了互聯網和堆棧溢出,但沒有找到解決方案如何模擬按鍵
有沒有辦法做到這一點在C或不?我正在使用和定位Windows 8.1
您想要使用SendInput
函數。以下代碼每隔10秒向Windows發送一次密鑰輸入事件對。
#include <windows.h>
static const int delay_ms = 10000;
void sendF5(
UINT uTimerID,
UINT uMsg,
DWORD_PTR dwUser,
DWORD_PTR dw1,
DWORD_PTR dw2) {
INPUT input[2] = {0};
input[0].type = input[1].type =
INPUT_KEYBOARD;
input[0].ki.wVk =
input[1].ki.wVk = VK_F5;
input[1].ki.dwFlags =
KEYEVENTF_KEYUP;
input[0].ki.dwExtraInfo =
input[1].ki.dwExtraInfo =
GetMessageExtraInfo();
SendInput(2, input, sizeof(INPUT));
}
int WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PWSTR pCmdLine,
int nCmdShow) {
timeSetEvent(delay_ms, 1000,
sendF5, 0, TIME_PERIODIC);
return 0;
}
只使用標準C?那就不要。使用操作系統功能?好的。但既然你不告訴我們你的目標是什麼操作系統,那真的不可能回答。請花些時間[閱讀如何提出問題](http://stackoverflow.com/help/how-to-ask),然後編輯您的問題以添加更多詳細信息和標籤。 –
現在編輯問題。謝謝。我正在使用Windows 8.1並針對相同的系統。 –
['keybd_event'](https://msdn.microsoft.com/en-us/library/windows/desktop/ms646304(v = vs.85).aspx)或['SendInput'](https:// msdn .microsoft.com/en-us/library/ms646310(VS.85).aspx) – Ryan