1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C语言 在程序中打开网页 模拟鼠标点击 键盘输入

C语言 在程序中打开网页 模拟鼠标点击 键盘输入

时间:2018-11-01 03:27:14

相关推荐

C语言 在程序中打开网页 模拟鼠标点击 键盘输入

C语言 在程序中打开网页,模拟鼠标点击、键盘输入

一、简述

记--使用C语言 打开指定网页,并模拟鼠标点击、键盘输入。实现半自动填写账号密码,并登录网站(当然现在的大部分网站都有验证码,或有检测"非人为"操作,以防止恶意注册、登录)。

例子打包:链接: /s/1eStV0lAcmr8kmEA0n3LRcg 提取码: 7kvj

二、效果 (程序填写账号密码,实现半自动登录)

三、工程结构

四、源文件

main.c文件

#include <stdio.h>#include <stdlib.h>#include <Windows.h> //ShellExecuteA()//打开某个网址:website (使用默认浏览器) void open_web(char *website){ShellExecuteA(0,"open", website,0,0,1);}//模拟鼠标点击 (x,y)是要点击的位置 void click(int x, int y){//将鼠标光标移动到 指定的位置例子中屏幕分辨率1600x900 在鼠标坐标系统中,屏幕在水平和垂直方向上均匀分割成65535×65535个单元mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_MOVE, x*65535/1600, y*65535/900, 0, 0);Sleep(50);//稍微延时50ms mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//鼠标左键按下 mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);//鼠标左键抬起}//模拟键盘输入 keybd_event(要按下的字符,0,动作,0);动作为0是按下,动作为2是抬起 void input(){char user[]="1234567890123";//账号 char pwd[]="1234567890";//密码 click(823,392); //点击"用户名输入框"的位置 int i;//输入账号 for(i=0;i<sizeof(user);i++){keybd_event(user[i],0,0,0);keybd_event(user[i],0,2,0);Sleep(30);}//tab键 对应的编号是0x09 让密码输入框 获取焦点 keybd_event(0x09,0,0,0);//按下 keybd_event(0x09,0,2,0); //松开 Sleep(30);//输入密码 for(i=0;i<sizeof(pwd);i++){keybd_event(pwd[i],0,0,0);keybd_event(pwd[i],0,2,0);Sleep(30);}//模拟按下tab键 让登录按钮获取焦点 click(824,530);//点击"登录按钮" Sleep(30);}//将chrome.exe进程杀掉,在例子中尚未使用 void close(){system("taskkill /f /im chrome.exe");}int main(int argc,char *argv[]){open_web("/");//打开某个网址 Sleep(4000);//延时4秒,等待网页打开完毕,再进行其它操作。根据实际情况(浏览器打开速度,网速) click(1454, 126);//点击"登录"(1454,126) Sleep(150);click(712,658);//点击"用户名登录"Sleep(150);input();//模拟鼠标动作,键盘输入 return 0;}

五、总结

5.1 ShellExecute()函数

打开指定网页:

ShellExecute(0, "open", "/",0, 0, 1);//最后的参数是控制最大化、最小化,隐藏

打开某个可执行文件:

#include <stdio.h>#include <windows.h> //ShellExecute() int main(int argc, char *argv[]){ShellExecute(0, "open", "C:\\Users\\newuser\\Desktop\\串口助手.exe",0, 0, 1);//最后的参数是控制最大化、最小化printf("Hello World!\n");return 0;}

5.2mouse_event()函数

将鼠标移动到指定位置(x,y)

//例子中屏幕分辨率1600x900 在鼠标坐标系统中,屏幕在水平和垂直方向上均匀分割成65535×65535个单元mouse_event(MOUSEEVENTF_ABSOLUTE|MOUSEEVENTF_MOVE, x*65535/1600, y*65535/900, 0, 0);

按下鼠标左键,然后抬起

mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//鼠标左键按下 mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);//鼠标左键抬起

5.3keybd_event()函数

模拟按下数字按键"9": (‘9’的和0x39都表示数字按键9)

keybd_event('9',0,0,0);//按下按键 ‘9’keybd_event('9',0,2,0);//抬起按键 ‘9’或 0x39keybd_event(0x39,0,0,0);//按下按键 ‘9’keybd_event(0x39,0,2,0);//抬起按键 ‘9’

虚拟按键 代码列表:/zh-cn/windows/desktop/inputdev/virtual-key-codes

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。