网页制作中鼠标移到一个位置_纯C语言制作自动登录账号

本文介绍了如何使用C语言结合<windows.h>库,通过ShellExecute()、SetCursorPos()、mouse_event()和keybd_event()函数实现网页自动登录的功能,详细讲解了各个函数的用途,并提供了完整的代码示例。
摘要由CSDN通过智能技术生成

7bce4185f4268c71c299135dfc5acbb6.png

纯C语言制作自动登录账号

本文适合有C语言基础的人观看

Hello,大家好。由于这次疫情,开学延期,本人是五中初二学生党一枚,第一次写文章,不好的地方请在评论区里指出。不知道有没有五中的学生们来看,如题图所示,这是五中鑫考云的登录界面,我们是需要天天上网课的,不知道你们有没有被每回的登录界面整烦,反正我是烦了。于是,我就做了下面的东东。先上动图:

ecfc3a325335270d67f9e1d41ef7a193.png
动图如上https://www.zhihu.com/video/1228796281683673088

看到这里有没有会C语言的童鞋呢?大家都知道C语言,不知道也应该听说过,编程语言之祖,1972年的语言,现在依然位居榜单第二,上证据:

e88eb14fcfdc612c21fcaabf5f01e976.png

你学的编程语言在哪一段位呢?

今天我们来讲一讲用C语言实现自动登录。因为我上网课用鑫考云,别的软件大同小异。

这用的是C语言里的<windows.h>来实现的。先逐一讲解,最后上代码。

1.ShellExecute( )函数

这个函数有6个参数,乍一听可能很多,但他有许多功能,他可以打开网页或exe文件,咱们一个一个讲,先举个栗子:

ShellExecute(0, "open", "notepad", 0, 0, 1);

这行代码是用来打开记事本的,下面逐个讲解。

第一个参数( 0 ):这个是代表系统弹出的,我也不太理解,就把他设成0就行了.

第二个参数( "open" ):就是代表打开,执行的意思,还有以下几个:"print"(打印文件),"explore"(浏览文件).

第三个参数( "notepad" ):就是打开的exe文件名称,也可以是网页("http://").

第四,五个参数( 0,0 ):默认就为 0 ,也可省略,写成这样.

ShellExecute(0,"open","notepad","","",1);

第六个参数( 1 ):这是控制打开的网页或exe文件,0代表窗口隐藏,1代表正常,3代表最大化,6代表最小化.

2.SetCursorPos( )函数

这个函数非常好理解,就是把光标移到相应的位置

SetCursorPos(500,400);

这就是将鼠标移到屏幕上(500,400)的位置,很简单吧.

注意,电脑的坐标跟数学的不一样. x从左往右递增,x从上往下递增。即:最左上方可见像素的坐标是(0,0).

3.mouse_event( )函数

这个函数是控制鼠标点击的,共有五个参数。

先上个栗子:

mouse_event(MOUSEEVENTF_LEFTDOWN, 0,0,0,0);

第一个参数( MOUSEEVENTF_LEFTDOWN ):这就是控制鼠标点击,这个意思是将鼠标左键按一下。同样,还有以下几个常用的:

            MOUSEEVENTF_LEFTDOWN                   //这表示鼠标左键按下         
            MOUSEEVENTF_LEFTUP                     //这表示鼠标左键松开
            MOUSEEVENTF_RIGHTDOWN                  //这表示鼠标右键按下
            MOUSEEVENTF_RIGHTUP                    //这表示鼠标右键松开
            MOUSEEVENTF_MIDDLEDOWN                 //这表示鼠标中键按下
            MOUSEEVENTF_MIDDLEUP                   //这表示鼠标中键松开
            MOUSEEVENTF_WHEEL                      //这表示鼠标轮被滚动,如果鼠标有一
                                                   //个滚轮。滚动的数量由第四个参数给出

第二个参数( 0 ):这是指经过上一个鼠标事件后移动的x数量,一般设成0就好

第三个参数( 0 ):这是指经过上一个鼠标事件后移动的y数量,一般设成0就好

第四个参数( 0 ):这是指滚轮移动的数量,正数向前滚动,负数向后滚动,与 MOUSEEVENTF_WHEEL 一块使用

第五个参数( 0 ):这是指定与鼠标事件相关的附加32位值,一般设成0就好

4.keybd_event( )函数

这个函数是控制键盘输入的,常用参数有四个。老规矩,先上栗子:

keybd_event(97,0,0,0);//按下a键 

第一个参数( 97 ):输入的按键,可以用 'a' 来表示,也可以用ASCII码来表示,ASCII码表如下:

64606050bbe042b458a0af731429928b.png

建议大家可以把最常用的背过,如A是65,a是97.(只是个人建议)

第二个参数( 0 ):这是定义该键的硬件扫描码,就写0就行.

第三个参数( 0 ):可以为0,也可为KEYEVENTF_KEYUP(常用的), 0 意为是按下那个键,而KEYEVENTF_KEYUP 意为松开键

第四个参数( 0 ):定义与击键相关的附加的32位值,写0就行了.

以上基本就是今天要讲的全部干货,下面开始把他们组装成一个可执行程序.

先让我们做些计划,本人较懒,先不画流程图了.

1.打开学校的官网:鑫考云校园

2.将鼠标移到输入账号的地方

3.单击一下输入框

4.输入账号

5.接着移到输入密码的地方

6.单击一下密码框

7.再输入密码。

8.移到确认的地方

9.点击确认。大功告成

步骤4和步骤7是本程序的核心部分,接下来让我们一步一步写。

1.打开官网:

ShellExecute(0,"open","http://home.xinkaoyun.com/login.html",0,0,1);
Sleep(3000);                //等学校官网加载出页面来

2.将鼠标移到账号框:

SetCursorPos(1100,330);           //本人测了好久的坐标,累死了

3.单击一下输入框:

mouse_event(MOUSEEVENTF_LEFTDOWN, 0,0,0,0);     //按下鼠标
mouse_event(MOUSEEVENTF_LEFTUP, 0,0,0,0);       //松开鼠标,这两个组成单击动作

4.输入账号:(核心

char user[]="XXXXXXXXXXX";
//你自己的账号
for (int i=0;i<11;i++) {
	keybd_event(user[i], 0, 0, 0);
	keybd_event(user[i],0, KEYEVENTF_KEYUP, 0);
	//循环,将你的账号输进去
	Sleep(100);
}		

5.移到密码框:

SetCursorPos(1100,380);       //也是实测的坐标

6.单击密码框:

mouse_event(MOUSEEVENTF_LEFTDOWN, 0,0,0,0);     //跟前面一样
mouse_event(MOUSEEVENTF_LEFTUP, 0,0,0,0);       

7.输入密码:(核心

char password[]="XXXXXX";
//这里写你密码
for (i=0;i<6;i++) {
	//这里的数你密码有几位就写几
	keybd_event(password[i], 0, 0, 0);
	keybd_event(password[i],0, KEYEVENTF_KEYUP, 0);
	//将密码输进去
	Sleep(100);
}

8,9.移到确认的地方并单击:

SetCursorPos(1100,444);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);          //跟前面一样

我们的程序就做完了!( 手动撒花 )

下面是完整程序:

#include <windows.h>
int main() {
	char user[]="XXXXXXXXXXX";
	char password[]="XXXXXX";
	ShellExecute(0,"open","http://home.xinkaoyun.com/login.html",0,0,1);
	Sleep(3000);
	SetCursorPos(1100,330);
	mouse_event(MOUSEEVENTF_LEFTDOWN, 0,0,0,0);
	mouse_event(MOUSEEVENTF_LEFTUP, 0,0,0,0);
	for (int i=0;i<11;i++) {
		keybd_event(user[i], 0, 0, 0);
		keybd_event(user[i],0, KEYEVENTF_KEYUP, 0);
		Sleep(100);
	}
	//以上为输入用户
	SetCursorPos(1100,380);
	mouse_event(MOUSEEVENTF_LEFTDOWN, 0,0,0,0);
	mouse_event( MOUSEEVENTF_LEFTUP, 0,0,0,0);
	for (i=0;i<6;i++) {
		keybd_event(password[i], 0, 0, 0);
		keybd_event(password[i],0, KEYEVENTF_KEYUP, 0);
		Sleep(100);
	}
	//以上为输入密码
	SetCursorPos(1100,444);
	mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
	mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
	return 0;
}

实际写下来,代码并不多,只有不到30行,但是它也帮我们节约了一些时间,这是我第一次将代码与实际生活联系在一起,写这一篇文章,我也查阅了很多资料,很多当时不明白的地方现在也明白多了。本人初二党一枚,第一次写文章,当做自勉了。也祝看我文章的小伙伴们学习成绩蒸蒸日上!如果你觉得这篇文章对你有用,请点个赞吧!

P.S.本人平时学习繁忙,更新可能比较慢,请大家见谅,本文写的比较仓促,有什么问题请在评论区里指出,大神勿喷,谢谢.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值