c# 制作赛尔号登录器
2022-04-05 16:18 jym蒟蒻 阅读(953) 评论(0) 收藏 举报使用c#制作赛尔号登录器
打开赛尔号官网,发现我的chrome浏览器无法运行Flash。这是因为Adobe 公司放弃了对 Flash Player 的支持。
那么如果我想要玩游戏,又不想下载别的浏览器,只好自己写一个登陆器了。

首先创建新项目


然后建几个窗体


建好大致就是下面这样。

然后设计窗体,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)
        {
        }
    }
}

其中用了个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。
顺利登录赛尔号,而且具有多开小号、缓存清理等功能。

 
                    
                     
                    
                 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号