今天考完了工图,下一门考试是2号的c语言…
考工图考的我好悲伤啊…画不完啊嘤嘤嘤
于是开始今日份瞎搞抚慰自己弱小的心灵
想做个自动发消息的机器,之前尝试过很多方法没有成功。最近玩windows.h库比较多,想着通过模拟键盘键入和鼠标点击试试看,没想到真有这样的函数。找到了一篇特别棒的博客,点击这里
首先,用一个暴力的打表程序得到想键入的东西的key code
我最近好爱用代码打代码啊
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
char a;
int main(){
while(cin>>a){
printf("keybd_event(%d,0,0,0);keybd_event(%d,0,2,0);Sleep(30);\n",a+'A'-'a',a+'A'-'a');
}
return 0;
}
字母的keycode它的大写对应的ascii值,所以进行了一点点处理
具体过程:先打开程序,然后在四秒内把桌面切换成和小伙伴的聊天框。程序会自动点一下输入的文本框,执行输入(我这里是先粘贴,然后输入文字),最后按回车。
土,但快乐。
至于怎么选输入的文本框,我根据显示器分辨率和用尺子量的坐标。
刚好拿画工图的尺子来量显示器
操作过程大概是这样:
然后上这个特别棒的click函数,是附的链接里的代码
真的好棒啊,我就直接用了QAQ
void click(int x, int y)
{
mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_MOVE, x*65535/1920, y*65535/1080, 0, 0);
Sleep(50);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
}
我的输入框大概在1000,1000的位子。
这里有个粘贴,我把小伙伴的名字先放在剪贴板里,然后直接粘贴就有了。
这样的效果就是我可以一直给某位xxx同学发xxxyyds
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h> //ShellExecuteA()
void click(int x, int y)
{
mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_MOVE, x*65535/1920, y*65535/1080, 0, 0);
Sleep(50);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
}
int main()
{
Sleep(4000);
for(int j=1;j<=20;j++){
click(1000, 1000);
keybd_event(17,0,0,0);
keybd_event(86,0,0,0);
keybd_event(17,0,2,0);
keybd_event(86,0,2,0);
Sleep(1000);
keybd_event(89,0,0,0);keybd_event(89,0,2,0);Sleep(30);
keybd_event(89,0,0,0);keybd_event(89,0,2,0);Sleep(30);
keybd_event(68,0,0,0);keybd_event(68,0,2,0);Sleep(30);
keybd_event(83,0,0,0);keybd_event(83,0,2,0);Sleep(30);
keybd_event(32,0,0,0);
keybd_event(32,0,2,0);
Sleep(1000);
keybd_event(0x0D,0,0,0);
keybd_event(0x0D,0,2,0);
Sleep(1000);
}
return 0;
}