
(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为例吧,别的也行等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)