问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言 怎样模拟鼠标键盘操作?

发布网友 发布时间:2022-04-21 17:48

我来回答

3个回答

热心网友 时间:2023-05-22 05:12

函数原型:
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 键 (复位,弹上来)
===
下面程序模拟按 notepad 编辑器。等于C语言 system("notepad"); 弹出 记事本。
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);
}

热心网友 时间:2023-05-22 05:12

模拟鼠标如下:
1、这里是鼠标左键按下和松开两个事件的组合即一次单击:
mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 )
2、模拟鼠标右键单击事件:
mouse_event (MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 )
3、两次连续的鼠标左键单击事件 构成一次鼠标双击事件:
mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 )
mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 )
4、使用绝对坐标
MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 500, 500, 0, 0
模拟键盘输入如下:
void EnterString(const char* text)
{
bool bShift = false;
size_t length = strlen(text);
for(size_t index = 0;index < length;index++)
{
int val = text[index];
if(val >= 97 && val <= 122) //小写a-z
{
val -= 32;
bShift = false;
}
else if(val >= 65 && val <= 90) //大写A-Z
{
bShift = true;
}
else if(val >= 48 && val <= 57) //数字0-9
{
bShift = false;
}
else //特殊符号
{
switch(val)
{
case '`':
val = 192;
bShift = false;
break;
case '~':
val = 192;
bShift = true;
break;
case '!':
val = '1'; //!和1在同一个键盘,使用同一个键盘码,以下相同
bShift = true;
break;
case '@':
val = '2'; //@和2在同一个键盘,使用同一个键盘码,以下相同
bShift = true;
break;
case '#':
val = '3';
bShift = true;
break;
case '$':
val = '4';
bShift = true;
break;
case '%':
val = '5';
bShift = true;
break;
case '^':
val = '6';
bShift = true;
break;
case '&':
val = '7';
bShift = true;
break;
case '*':
val = '8';
bShift = true;
break;
case '(':
val = '9';
bShift = true;
break;
case ')':
val = '0';
bShift = true;
break;
case '-':
val = 189;
bShift = false;
break;
case '=':
val = 187;
bShift = false;
break;
case '_':
val = 189;
bShift = true;
break;
case '+':
val = 187;
bShift = true;
break;
case '[':
val = 219;
bShift = false;
break;
case '{':
val = 219;
bShift = true;
break;
case ']':
val = 221;
bShift = false;
break;
case '}':
val = 221;
bShift = true;
break;
case '\\':
val = 220;
bShift = false;
break;
case '|':
val = 220;
bShift = true;
break;
case ';':
val = 186;
bShift = false;
break;
case ':':
val = 186;
bShift = true;
case '\'':
val = 222;
bShift = false;
break;
case '\"':
val = 222;
bShift = true;
break;
case ',':
val = 188;
bShift = false;
break;
case '<':
val = 188;
bShift = true;
break;
case '.':
val = 190;
bShift = false;
break;
case '>':
val = 190;
bShift = true;
break;
case '/':
val = 191;
bShift = false;
break;
case '?':
val = 191;
bShift = true;
break;
default:
break;
}
}
if(bShift)
keybd_event(VK_SHIFT,0,0,0);
keybd_event(val,0,0,0);
keybd_event(val,0,KEYEVENTF_KEYUP,0);
if(bShift)
keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP,0);
}
}

热心网友 时间:2023-05-22 05:13

你说的是VC吧?追问是的

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
六岁孩子听些什么样的钢琴曲 0-3岁儿童启蒙早教学说话有哪些 赔偿协议书范本怎么写 我的儿子八岁,前两天感冒过,肝功不正常,具体如下;谷丙转氨酶326.3, 谷丙转氨酶97.9,谷草转氨酶39,谷氨酰转移酶68.2,病情重不重?如何治疗... 朋友借电动车出车祸了是否是要负责任 ...银行卡上开通了会员和黄钻,我只开了一个月,了是过期后它自动续费... ...淘宝现在可以开通永久qq黄钻,却开通不了一个月的,还有那永久是真的... QQ黄钻已经开通2个月了,当初是买了三个月的。现在有一张30元黄钻代金... 美好的早安心语优美的语句说说心情短语 怎么模拟鼠标滑动 oneplayer模拟鼠标 如何用键盘模拟鼠标?鼠标坏了! 键盘怎么模拟鼠标操作 模拟鼠标点击精灵的使用方法 虚拟鼠标怎么设置 电脑触摸屏的模拟鼠标怎么取消 模拟鼠标选项在哪里? 怎样用键盘模拟鼠标 老人常说:孩子取名不能“太大”,有什么科学依据? 给孩子起名叫天昊,都说名字起大了? 为什么不能给孩子取“太大”的名字? 为什么小孩子的名字不能起的太大? 豪门给孩子取名都没有“大”字,背后有什么科学依据? 为什么给孩子起名不能起太“大”? 给孩子取名“太大”,会给孩子带来很大的压力吗? 为什么给孩子取名不能太大? 为什么孩子名字不能取“太大”呢,有什么科学依据? 无法安装更新安装ios10.3时出错怎么回事 为什么给宝宝取名不能起&#39;&#39;太大&#39;&#39;?是因为迷信吗? 键盘模拟鼠标按键 模拟鼠标持续点击的软件 不是连续点击 是要摁住了那种 有什么软件能模拟鼠标复杂操作 VB模拟鼠标点击 autohotkey怎样模拟鼠标操作 第一次坐飞机难受吗?怎么缓解? 坐飞机时间太长好难受怎么办? 坐飞机为什么不舒服? 删除手机联系人怎么删除 坐飞机难受吗 第一次坐飞机是什么感受如何? 手机中的联系人如何删除 坐飞机难受吗? 我坐飞机的时候感觉特难受,特别是下降的时候...为... 每次坐飞机都特别紧张害怕,怎么克服恐惧感? 自己在群里发的信息如何删除? 坐飞机难受啊,吃不下是晕机吗? 第一次坐飞机会有什么难受的地方? 怎样删除手机里面的联系人号码? 第一次坐飞机有什么难受的地方?