使用c#制作赛尔号登录器

使用c#制作赛尔号登录器

需求:

打开赛尔号官网,发现我的chrome浏览器无法运行Flash。这是因为Adobe 公司放弃了对 Flash Player 的支持。

那么如果我想要玩游戏,又不想下载别的浏览器,只好自己写一个登陆器了。

在这里插入图片描述

创建项目

首先创建新项目

在这里插入图片描述

在这里插入图片描述

然后建几个窗体

在这里插入图片描述

在这里插入图片描述

建好大致就是下面这样。

在这里插入图片描述

FromMainMenu窗体

然后设计窗体,mainMenu窗体如下。这里面用的是TabControl。

在这里插入图片描述

在这里插入图片描述

这里面要修改每一个tabPage的Name和Tag

在这里插入图片描述

然后添加事件SelectedIndexChanged。

在这里插入图片描述

双击窗体,就能生成一个构造函数。

FormMainMenu整体的源代码如下,起到一个选项卡切换窗体的功能,用来多开小号。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
using System.Windows.Forms;namespace SeerLauncher
{public partial class FormMainMenu : Form{public FormMainMenu(){InitializeComponent();}public int[] s = { 0, 0 , 0 , 0 , 0 , 0};//用来记录窗体是否打开过private void tabControl1_SelectedIndexChanged(object sender, EventArgs e){if (s[tabControl1.SelectedIndex] == 0){btnX_Click(sender, e);}} private void FormMainMenu_Load(object sender, EventArgs e){string formClass = "SeerLauncher.Form1";GenerateForm(formClass, tabControl1);}public void GenerateForm(string form, object sender){//反射生成窗体Form fm = (Form)Assembly.GetExecutingAssembly().CreateInstance(form);//设置窗体没有边框,加入到选项卡中fm.FormBorderStyle = FormBorderStyle.None;fm.TopLevel = false;fm.Parent = ((TabControl)sender).SelectedTab;fm.ControlBox = false;fm.Dock = DockStyle.Fill;fm.Show();s[((TabControl)sender).SelectedIndex] = 1;}private void btnX_Click(object sender, EventArgs e){string formClass = ((TabControl)sender).SelectedTab.Tag.ToString();GenerateForm(formClass, sender);}private void tabPage1_Click(object sender, EventArgs e){}private void tabPage3_Click(object sender, EventArgs e){}}
}

Form窗体

在这里插入图片描述

其中用了个menuStrip控件。

在这里插入图片描述

还有webBrowser控件。按照下面这样修改属性。

在这里插入图片描述

在这里插入图片描述

如果电脑上安装了高版本的IE浏览器,Webbrowser控件会使用IE7兼容模式显示网页内容。

解决方法是在注册表中为进程指定引用IE的版本号。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Form1源代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace SeerLauncher
{public partial class Form1 : Form{[DllImport("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize")]public static extern int SetProcessWorkingSetSize(IntPtr process, int minSize, int maxSize);public Form1(){InitializeComponent();timer1.Enabled = true;timer1.Interval = 1000;timer1.Start();}private void 刷新ToolStripMenuItem_Click(object sender, EventArgs e){webBrowser1.Refresh();}private void 清理缓存ToolStripMenuItem_Click(object sender, EventArgs e){Clear();}private void Clear(){SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1, -1);}private void timer1_Tick(object sender, EventArgs e){long Memory = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64;long Temp = Memory / 1024 / 1024;label1.Text = Temp + " " + "M";}private void checkBox1_CheckedChanged(object sender, EventArgs e){if (checkBox1.Checked){timer2.Enabled = true;timer2.Interval = 8000;timer2.Start();}else{timer2.Enabled = false;}}private void timer2_Tick(object sender, EventArgs e){long Memory = System.Diagnostics.Process.GetCurrentProcess().WorkingSet64;long Temp = Memory / 1024 / 1024;if(Temp > 500){Clear();}}private void Form1_Load(object sender, EventArgs e){}private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e){}}
}

同理修改Form2到Form6。

整体效果

顺利登录赛尔号,而且具有多开小号、缓存清理等功能。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

普通RNN的缺陷—梯度消失和梯度爆炸

之前的RNN,无法很好地学习到时序数据的长期依赖关系。因为BPTT会发生梯度消失和梯度爆炸的问题。 RNN梯度消失和爆炸 对于RNN来说,输入时序数据xt时,RNN 层输出ht。这个ht称为RNN 层的隐藏状态,它记录过去的信息。 语言模型的任…

LSTM的结构

RNN和LSTM 简略表示RNN层:长方形节点中包含了矩阵乘积、偏置的和、tanh函数的变换。将下面这个公式表示成一个tanh节点。 LSTM:Long Short-Term Memory(长短期记忆),长时间维持短期记忆。 LSTM与RNN的接口(输入输出)…

STM32 USART 补充

串口通讯的数据包:发送设备通过自身的TXD接口传输到接收设备的RXD接口。 串口通讯的协议层中,规定了数据包的内容,由起始位、主体数据、校验位、停止位组成,通讯双方的数据包格式要约定一致才能正常收发数据。 异步通讯&#xf…

ROS TF变换

静态坐标转换:机器人本体中心到雷达中心的转换。因为激光雷达可能没安装到机器人的中心。 动态坐标转换:机器人中心和里程计坐标的变换。机器人从起点出发后,里程计坐标相对于本体就会产生一个偏移,这个偏移随着机器人的运动不断…

ROS底盘控制节点 源码分析

先在机器人端通过launch文件启动底盘控制。 robot:~$ roslaunch base_control base_control.launch ... logging to /home/jym/.ros/log/3e52acda-914a-11ec-beaa-ac8247315e93/roslaunch-robot-8759.log Checking log directory for disk usage. This may take a while. Pres…

ROS + OpenCV

视觉节点测试 先进行一些测试。并记录数据。 圆的是节点,方的是话题。 1.robot_camera.launch robot:~$ roslaunch robot_vision robot_camera.launch ... logging to /home/jym/.ros/log/bff715b6-9201-11ec-b271-ac8247315e93/roslaunch-robot-8830.log Check…

ROS+雷达 运行数据记录

先测试一下雷达,记录数据。方便接下来分析源码。 1.roslaunch robot_navigation lidar.launch robot:~$ roslaunch robot_navigation lidar.launch ... logging to /home/jym/.ros/log/7136849a-92cc-11ec-acff-ac8247315e93/roslaunch-robot-9556.log Checking l…

ROS 找C++算法源码的方法

在gmapping的launch文件中看到,type“slam_gmapping”,这里的slam_gmapping是c编译后的可执行文件。 如果想要修改gmapping算法,就需要找到slam_gmapping的c源码。 但是这是用apt下载的包,是二进制类型的,没有下载出…

ros 雷达 slam 导航 文件分析

ros 雷达 slam 导航 文件分析robot_slam_laser.launchrobot_lidar.launchlidar.launchraplidar.launchkarto.launchgmapping.launchcartographer.launchrobot_navigation.launchmap.yamlmap.pgmamcl_params.yamlmove_base.launchcostmap_common_params.yamllocal_costmap_param…

Apprentissage du français partie 1

Apprentissage du franais partie 1 键盘转换图: 字母:26个 元音字母:a、e、i、o、u、y b浊辅音(声带)-p清辅音 d-t 音符 音符:改变字母发音。 :闭音符 [e] :开音符 /ε/ :长音符 /ε/…

stm32基本定时器

定时器分类 stm32f1系列,8个定时器,基本定时器(TIM6,7)、通用定时器(TIM2,3,4,5)、高级定时器(TIM1,8)。 基本定时器:16位,只能向上计数的定时器,只能定时,没有外部IO 通用定时器:16位&#…

stm32高级定时器 基础知识

stm32高级定时器 高级定时器时基单元: 包含一个16位自动重装载寄存器 ARR 一个16位的计数器CNT,可向上/下计数 一个16位可编程预分频器PSC,预分频器时钟源有多种可选,有内部的时钟、外部时钟。 一个8位的重复计数器 RCR&…

stm32 PWM互补输出

stm32高级定时器例子—stm32 PWM互补输出 定时器初始化结构体 TIM_TimeBaseInitTypeDef 时基结构体,用于定时器基础参数设置,与TIM_TimeBaseInit函数配合使用,完成配置。 typedef struct { TIM_Prescaler /*定时器预分频器设置&…

stm32 输入捕获 测量脉宽

选用通用定时器TIM5的CH1。 PA0接一个按键,默认接GND,当按键按下时,IO口被拉高,此时,可利用定时器的输入捕获功能,测量按键按下的这段高电平的时间。 宏定义方便程序升级、移植,举个例子&#…

stm32 PWM输入捕获

普通的输入捕获,可使用定时器的四个通道,一路捕获占用一个捕获寄存器. PWM输入,只能使用两个通道,通道1和通道2。 一路PWM输入占用两个捕获寄存器,一个捕获周期,一个捕获占空比。 这里,用通用…

直流有刷减速电机结构及其工作原理

寒假无聊拆了个直流有刷减速电机。下面介绍一下它的结构和工作原理 直流电机 直流电机和直流减速电机: 构造上相差的是一个减速齿轮组。 普通的直流电机当空载时,电机的转速由电压决定,直流减速电机的转速由齿轮组和电压决定。 齿轮组作…

数据库基础概念

postgreSQL设置只允许本地机器连接 在D:\program files\PostgreSQL\14\data里面设置postgresql.conf: listen_addresses ‘localhost’ 然后在服务窗口重新启动postgresql。 PostgreSQL执行SQL语句 PostgreSQL的psql工具可通过命令行执行SQL语句。 psql -U po…

电机和驱动的种类

电机种类 直流电机 分为普通的直流电机、直流减速电机、有刷、无刷。 直流有刷减速电机参数: 空载转速,正常工作电压,电机不带任何负载的转速。 空载电流,正常工作电压,电机不带任何负载的工作电流。单位mA。 负载…

Linux shell基础知识

Shell简介 Shell是一个应用程序,接收用户输入的命令,根据命令做出相应动作。 Shell负责将应用层或者用户输入的命令,传递给系统内核。由操作系统内核,来完成相应的工作。然后将结果反馈给应用层或者用户。 shell命令格式&#…

Linux APT VIM 的一些指令

APT APT下载工具,可以实现软件自动下载、配置、安装二进制或源码功能。 APT采用客户端/服务器模式。 sudo apt-get update 更新软件 sudo apt-get check 检查依赖关系 sudo apt-get install package-name 安装软件 apt-get负责下载软件,install负责安…