C++怎么模拟键盘按键

C++怎么模拟键盘按键,第1张

(1) 在页面上点右键,按'E’键(菜单上注明'E’是快捷键)

(2) 这时候d出保存对话框,因为文件名该程序已经根据页面为我们默认设好了,所以直接点回车确认就可以了。

(3) 转到下一页,查看程序的“视图”菜单发现,有一个“跳转”-“下一页”的选项,快捷键是Ctrl+PageDown,因此只要再按下Ctrl+PageDown即可。

(4) 重复(1)直到全部 *** 作结束。

程序如下:

//此程序用于模拟鼠标和键盘 *** 作。

#include<windowsh>

int main()

{

Sleep(3000);//留3秒用于我们把鼠标移到文档上

for(int i=1;i<567;i++)

{

//模拟右键按下d起

mouse_event(MOUSEEVENTF_RIGHTDOWN,0, 0, 0, 0);

mouse_event(MOUSEEVENTF_RIGHTUP,0, 0, 0, 0);

//模拟按下'E'键

keybd_event('E',(BYTE)0, 0 ,0);

keybd_event('E', (BYTE)0, KEYEVENTF_KEYUP,0);

Sleep(50);

//模拟按下回车,对应确定保存

keybd_event(VK_RETURN, 0, 0 ,0);

keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP,0);

Sleep(100);//等待保存

//模拟按下ctrl+PageDown键,对应翻页

keybd_event(VK_CONTROL, (BYTE)0, 0 ,0);

keybd_event(VK_NEXT,(BYTE)0, 0 ,0);

keybd_event(VK_NEXT, (BYTE)0, KEYEVENTF_KEYUP,0);

keybd_event(VK_CONTROL, (BYTE)0, KEYEVENTF_KEYUP,0);

Sleep(50);//等待翻页

}

return 0;

}

可以用普通的C语言来写。调用User32lib

的函数:

void keybd_event(BYTE bVirturalKey,BYTE bScanCode,

DWORD dwFlags,DWORD dwExtraInfo)

ctrl 键是 VK_CONTROL bScanCode = 0x9d

shift键是 VK_SHIFT 0xaa

揿键是 0,0

键d上来是:KEYEVENTF_KEYUP,0

例如simu_keyboardc程序,模拟 Alt-PrintScreen,把屏幕图像放入剪切板。

头文件:

#include <Windowsh>

#include <Winuserh>

#include <stdioh>

#include <stdlibh>

/ ----------------------------------

simulation of Alt-PrintScreen

to get current Window image in clipboard

-----------------------------------/

void snapwin_2_clipboard()

{

keybd_event(VK_LMENU,0xA4,0,0); // 揿 Alt

keybd_event(VK_SNAPSHOT,0x2C,0,0); // 揿 PrintScreen

keybd_event(VK_SNAPSHOT,0x2C,KEYEVENTF_KEYUP,0); // 键d上

keybd_event(VK_LMENU,0xA4,KEYEVENTF_KEYUP,0); // 键d上

}

void main()

{

(void) snapwin_2_clipboard();

exit(0);

}

编译命令: cl simu_keyboardc user32lib

运行:simu_keyboardexe

用任何图像编辑软件中的Edit-paste 可贴剪切板里的内容了。

:: 支持 QQ2009 QQ2010,运行前请自行修改代码中的QQEXE所在完整路径

:: By LJ_SunTB百度知道BAT-GO团

@echo off

set /p qqnum=输入QQ号码:

set /p qqpwd=输入QQ密码:

set vbs=qqloginvbs

for /f "delims=:" %%a in ('findstr /n /b ":vbs" %0') do (more +%%a %0>"%vbs%")

start "" "%vbs%" %qqnum% %qqpwd%

del "%vbs%"

exit

:vbs

Dim a,user,pass

Set a=WScriptCreateObject("WScriptshell")

user=WscriptArguments(0)

pass=WscriptArguments(1)

arun """D:\Program Files\Tencent\QQ2010\Bin\QQexe"""

WScriptSleep 3000

aSendKeys "{TAB 8}"

aSendKeys user

aSendKeys "{TAB}"

WScriptSleep 200

aSendKeys pass

aSendKeys "{Enter}"

函数原型:

VOID keybd_event( BYTE bVk, BYTE bScan, DWORD dwFlags, DWORD dwExtraInfo );

4个参数都是输入参数。

bVk:键名,例如: VK_NUMPAD7,VK_BACK, VK_TAB,VK_SHIFT,VK_F1,。。。

keybd_event(VK_MENU,0xb8,0 , 0); -- 按下Alt 键

keybd_event(VK_MENU,0xb8,KEYEVENTF_KEYUP,0); -- 放开 Alt 键 (复位,d上来)

===

下面程序模拟按 notepad 编辑器。等于C语言 system("notepad"); d出 记事本。

void simu_notepad()

{

keybd_event(VkKeyScan('N'),1,0,0);

keybd_event(VkKeyScan('N'),1,KEYEVENTF_KEYUP,0);

keybd_event(VkKeyScan('O'),0x98,0,0); keybd_event(VkKeyScan('O'),0x98,KEYEVENTF_KEYUP,0);

keybd_event(VkKeyScan('T'),0x94,0,0); keybd_event(VkKeyScan('T'),0x94,KEYEVENTF_KEYUP,0);

keybd_event(VkKeyScan('E'),0x92,0,0); keybd_event(VkKeyScan('E'),0x92,KEYEVENTF_KEYUP,0);

keybd_event(VkKeyScan('P'),0x99,0,0); keybd_event(VkKeyScan('P'),0x99,KEYEVENTF_KEYUP,0);

keybd_event(VkKeyScan('A'),0x9E,0,0); keybd_event(VkKeyScan('A'),0x9E,KEYEVENTF_KEYUP,0);

keybd_event(VkKeyScan('D'),0xA0,0,0); keybd_event(VkKeyScan('D'),0xA0,KEYEVENTF_KEYUP,0);

keybd_event(VK_RETURN,1,0,0);

keybd_event(VK_RETURN,1,KEYEVENTF_KEYUP,0);

}

以上就是关于C++怎么模拟键盘按键全部的内容,包括:C++怎么模拟键盘按键、windows编程如何指定对某一个程序模拟键盘输入、谁能给我写个bat,让它在某个程序上模拟键盘输入,以qq为例吧,别的也行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9391370.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存