热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

纯C语言制作自动登录账号本文适合有C语言基础的人观看Hello,大家好。由于这次疫情,开学延期,本人是五中初二学生党一枚,第
7bce4185f4268c71c299135dfc5acbb6.png

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

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

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

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

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

e88eb14fcfdc612c21fcaabf5f01e976.png

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

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

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

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&#61;0;i<11;i&#43;&#43;) {keybd_event(user[i], 0, 0, 0);keybd_event(user[i],0, KEYEVENTF_KEYUP, 0);//循环&#xff0c;将你的账号输进去Sleep(100);
}

5.移到密码框&#xff1a;

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

6.单击密码框&#xff1a;

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

7.输入密码&#xff1a;&#xff08;核心&#xff09;

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

8&#xff0c;9.移到确认的地方并单击&#xff1a;

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

我们的程序就做完了&#xff01;( 手动撒花 )

下面是完整程序&#xff1a;

#include
int main() {char user[]&#61;"XXXXXXXXXXX";char password[]&#61;"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&#61;0;i<11;i&#43;&#43;) {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&#61;0;i<6;i&#43;&#43;) {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;
}

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

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



推荐阅读
  • 本文介绍了指针的概念以及在函数调用时使用指针作为参数的情况。指针存放的是变量的地址,通过指针可以修改指针所指的变量的值。然而,如果想要修改指针的指向,就需要使用指针的引用。文章还通过一个简单的示例代码解释了指针的引用的使用方法,并思考了在修改指针的指向后,取指针的输出结果。 ... [详细]
  • 本文介绍了在Windows系统上使用C语言命令行参数启动程序并传递参数的方法,包括接收参数程序的代码和bat文件的编写方法,同时给出了程序运行的结果。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文介绍了基于c语言的mcs51单片机定时器计数器的应用教程,包括定时器的设置和计数方法,以及中断函数的使用。同时介绍了定时器应用的举例,包括定时器中断函数的编写和频率值的计算方法。主函数中设置了T0模式和T1计数的初值,并开启了T0和T1的中断,最后启动了CPU中断。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • c语言\n不换行,c语言printf不换行
    本文目录一览:1、C语言不换行输入2、c语言的 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • C++中的三角函数计算及其应用
    本文介绍了C++中的三角函数的计算方法和应用,包括计算余弦、正弦、正切值以及反三角函数求对应的弧度制角度的示例代码。代码中使用了C++的数学库和命名空间,通过赋值和输出语句实现了三角函数的计算和结果显示。通过学习本文,读者可以了解到C++中三角函数的基本用法和应用场景。 ... [详细]
  • 这篇文章主要介绍了Python拼接字符串的七种方式,包括使用%、format()、join()、f-string等方法。每种方法都有其特点和限制,通过本文的介绍可以帮助读者更好地理解和运用字符串拼接的技巧。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
author-avatar
手机用户2502887763
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有