一个按"按" x按钮N次

时间:2016-10-25 19:14:01

标签: windows

我想知道是否有可能在Windows中使用记事本和命令提示创建一个程序,就像我的手指在键盘上一样。我认为解释我的意思的最好方法是举个例子。

for(i = 0; i < N; i++) 
{
    "press key x"
    "wait 3 seconds"
}

所以基本上我想要一个程序,好像我每隔三秒就按一次x按钮,共计N次。如果答案是肯定的,那么您是否有可能推荐一个网站,pdf或类似的地方,我可以从中学习如何编写这样的程序。

我希望我已经明确表示,如果我的问题中有任何问题需要改进,请告诉我。

2 个答案:

答案 0 :(得分:0)

AutoHotKey是个不错的选择。

以下是一个示例脚本:

Loop, 3
{
send, xxxxx
Sleep, 3000 
}

答案 1 :(得分:0)

对于Windows,您可以查看keybd_eventSendInput API以获取键盘输入,并Sleep进行等待。

例如,使用keybd_event

for(i = 0; i < N; i++) 
{
    keybd_event((BYTE)VkKeyScan(L'x'), MapVirtualKey(VkKeyScan(L'x'), MAPVK_VK_TO_VSC), 0, 0);
    keybd_event((BYTE)VkKeyScan(L'x'), MapVirtualKey(VkKeyScan(L'x'), MAPVK_VK_TO_VSC), KEYEVENTF_KEYUP, 0);
    Sleep(3000);
}

使用SendInput

INPUT inputs[1];

inputs[0].type = INPUT_KEYBOARD;
inputs[0].ki.wVk = VkKeyScan(L'x');
inputs[0].ki.wScan = MapVirtualKey(VkKeyScan(L'x'), MAPVK_VK_TO_VSC);
inputs[0].ki.time = 0;
inputs[0].ki.dwExtraInfo = 0;

for(i = 0; i < N;  i++)
{
    inputs[0].ki.dwFlags = 0;
    SendInput(1, inputs, sizeof(INPUT));
    input.ki.dwFlags = KEYEVENTF_KEYUP;
    SendInput(1, inputs, sizeof(INPUT));
    Sleep(3000);
}