制作一个简易的登陆客户端

使用C#制作一个完整的聊天系统 话不多说,首先给大家看一下整体的运行效果 首先这是登陆界面(艺术细胞不行,不能怪我- -) 这是一个类似QQ主界面的界面(虽然不好看,勉强能用) 然后双击其中一个名字,进入聊天页面,另外在打开一个界面,实现双方的聊天 这就是主要的界面了,还有一些忘记密码,注册,完善个人资料等界面都比较简单,就不一一列出了。所以希望这篇博客能帮助到那些想实现一个比较完整的系统的小伙伴。 接... 阅读详情

为了解决校园网客户端的各种限制,所以自己写了一个简易的登陆客户端

根据上一篇文章联通校园网不能开热点问题解决办法,获取的数据写了下面的程序。

如下图:




这里直接用现成DotRas对PPPoE软件进行操作

一、核心的三个操作

1、

// 创建或更新一个PPPOE连接(指定PPPOE名称)
        void CreateOrUpdatePPPOE(string updatePPPOEname)
        {
            RasDialer dialer = new RasDialer();
            RasPhoneBook allUsersPhoneBook = new RasPhoneBook();
            string path = RasPhoneBook.GetPhoneBookPath(RasPhoneBookType.AllUsers);
            allUsersPhoneBook.Open(path);
            // 如果已经该名称的PPPOE已经存在,则更新这个PPPOE服务器地址
            if (allUsersPhoneBook.Entries.Contains(updatePPPOEname))
            {
                allUsersPhoneBook.Entries[updatePPPOEname].PhoneNumber = " ";
                // 不管当前PPPOE是否连接,服务器地址的更新总能成功,如果正在连接,则需要PPPOE重启后才能起作用
                allUsersPhoneBook.Entries[updatePPPOEname].Update();
            }
            // 创建一个新PPPOE
            else
            {
                string adds = string.Empty;
                ReadOnlyCollection<RasDevice> readOnlyCollection = RasDevice.GetDevices();
                //                foreach (var col in readOnlyCollection)
                //                {
                //                    adds += col.Name + ":" + col.DeviceType.ToString() + "|||";
                //                }
                //                _log.Info("Devices are : " + adds);
                // Find the device that will be used to dial the connection.
                RasDevice device = RasDevice.GetDevices().Where(o => o.DeviceType == RasDeviceType.PPPoE).First();
                RasEntry entry = RasEntry.CreateBroadbandEntry(updatePPPOEname, device);    //建立宽带连接Entry
                entry.PhoneNumber = " ";
                allUsersPhoneBook.Entries.Add(entry);
            }
        }

2、

//宽带连接,成功返回true,失败返回 false
        /// <param name="PPPOEname">宽带连接名称</param>
        /// <param name="username">宽带账号</param>
        /// <param name="password">宽带密码</param>
        /// <returns></returns>
        public bool Connect(string PPPOEname, string username, string password,ref string msg )
        {
            try
            {
                CreateOrUpdatePPPOE(PPPOEname);
                using (RasDialer dialer = new RasDialer())
                {
                    dialer.EntryName = PPPOEname;
                    dialer.AllowUseStoredCredentials = true;
                    dialer.Timeout = 1000;
                    dialer.PhoneBookPath = RasPhoneBook.GetPhoneBookPath(RasPhoneBookType.AllUsers);
                    dialer.Credentials = new NetworkCredential(username, password);
                    dialer.Dial();
                    return true;
                }
            }
            catch (RasException re)
            {
                msg = re.ErrorCode + " " + re.Message;
                return false;
            }
        }

3、

//断开 宽带连接
        public void Disconnect()
        {
            ReadOnlyCollection<RasConnection> conList = RasConnection.GetActiveConnections();
            foreach (RasConnection con in conList)
            {
                con.HangUp();
            }
        }

二、根据上一篇文章,调用这三个操作如下

           private void lianjie() {
            //连接
            String m = "";
            String uname = skinTextBox1.Text;
            String pswd = skinTextBox2.Text;
            String username = uname + "@dxcwo201";
            String password = (char)1 + pswd;
            CreateOrUpdatePPPOE("宽带连接");
            bool b = Connect("宽带连接", username, password, ref m);
            if (b)
            {
                panel1.Visible = true;
                label1.Text = "";
            }
            else {
                label1.Text = "登陆失败!";
            }
        }

这里已基本实现网络的新建,连接,断开

当然界面也不能太low,下面对界面一些优化

首先,扁平化,将窗体边框设为零

设为0后解决窗体移动的问题

        [DllImport("user32.dll")]
        public static extern bool ReleaseCapture();
        [DllImport("user32.dll")]
        public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
        public const int WM_SYSCOMMAND = 0x0112;
        public const int SC_MOVE = 0xF010;
        public const int HTCAPTION = 0x0002;
        public Login()
        {
            InitializeComponent();
            //去边框后,实现窗体的移动
            foreach (var item in this.Controls)
            {
                if ((item as GroupBox) != null)
                {
                    (item as GroupBox).MouseDown += Login_MouseDown;
                }
                else if ((item as Panel) != null)
                {
                    (item as Panel).MouseDown += Login_MouseDown;
                }
            }
        }
        //去边框后,实现窗体的移动
        private void Login_MouseDown(object sender, MouseEventArgs e)
        {
            ReleaseCapture();
            SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
        }
        private void skinPictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            ReleaseCapture();
            SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
        }

然后是右上角的最小化,关闭

        //窗体最小化
        private void button3_Click(object sender, EventArgs e)
        {
            this.WindowState = FormWindowState.Minimized;
        }
        //窗体退出
        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }




可以开wifi,用虚拟机的客户端:下载链接 下载链接2


dial client 根据dial 1.7.0协议开发的dial client端,可以用来发现包括TV terminal在内的多个终端,并通过websocket进行通讯 立即下载

相关推荐

DialClientGuard认证客户端破解版

https://blog.youkuaiyun.com/ElliotCs/article/details/79671322 https://blog.youkuaiyun.com/elliotcs/article/details/79681024

Java 关于生成WebService客户端以及服务端存在账号密码登录如何通过代码模拟登录解决方案

首先,这篇文章主要是用来做一个记录,方便以后使用,所以不会有太多关于webService以及wsdl的一些原理上的讲解,主要是为了解决实际问题,即:如何生成webService客户端去调用服务端,以及当服务端需要进行账号密码登录时,我们该如何模拟登录,来继续调用里面的接口。 主要是因为发现网上关于生成客户端以及调用的文章确实有很多,但是只要一涉及到服务端有账号密码的问题的解决方案就是少之又少

beyondLi71的博客 7595

DialClientGuard认证客户端破解版2.0

https://blog.youkuaiyun.com/ElliotCs/article/details/79671322 https://blog.youkuaiyun.com/elliotcs/article/details/79681024

客户端开发基本知识

为了提供更好的用户体验,开发者不仅要精通前端开发的技术栈,还需要具备高效的开发工具和优化技巧。随着技术的不断进步,客户端开发将迎来更多创新的解决方案,帮助开发者解决各种复杂的开发难题。客户端程序通常运行在用户的设备上(如手机、电脑等),负责处理与用户交互的任务,同时与服务器进行通信以获取和发送数据。本文将介绍一些客户端开发的基本知识,帮助开发者更好地理解客户端开发的核心概念和技术。UX 设计不仅仅关注界面的美观性,还包括如何通过流畅的操作流程、快速的响应速度等方面提升用户的整体体验。

z26643098536的博客 3936

拨号客户端源码dial

通用的windows平台客户端进行拨号上网,有返回代码显示,代码测试通过,请放心使用

c#简单的TCP客户端

只有客户端,用的是C#开发,非常简单的一个客户端,需要服务器可以到https://download.youkuaiyun.com/download/dsrccsdn/10754866下载

客户端/服务器的简易实现

网络编程套接字,UDP/TCP的区别(​编辑),UDP API使用,TCP API使用

2302_81705247的博客 1282

问道网关登录器.zip_gm工具问道_throat7t2_网关_网关gm288-s登录_问道gm工具

可以远程用手机网页管理网关以及带gm工具,都可以在任何网页查看并管理。

Java如何开发PC客户端(Windows,Mac,Linux)

我是参考这个例子https://github.com/beryx-gist/badass-jlink-example-log4j2-javafx进行的配置。如果有java环境的机器,可以使用launch4j进行打包(可以指定支持的运行时java环境版本min~max), 可参考maven插件https://github.com/orphan-oss/launch4j-maven-plugin。试了Maven项目的javafx-maven-plugin插件,发现没法打包成可安装的包exe或者msi。

Carl_Zhang 1万+

实验室LIMS系统选型指南:从赛默飞到金现代,5大主流方案横评

本文深入分析了实验室LIMS系统选型的5大核心维度,包括架构选择、行业适配性、合规性设计、智能化程度和成本模型。通过对比赛默飞、金现代等主流厂商的优劣势,提供实战避坑策略,帮助实验室管理者做出明智决策,提升运营效率和合规水平。

plum99的博客 257

Isaac Sim 使用经验(配置要求,云服务器)

Google Colab及AutoDL都是在docker内运行,其中google colab并不支持docker指令,而依照AutoDL的相关文档,AutoDL并不直接提供docker指令。2. Google Colab/AutoDL 不支持图形化界面,图形渲染等任务,所以没有办法使用Omniverse Streaming进行直播,从而更好的对结果进行展示。对于第一点,或许存在直接手动复现镜像的可能,但是考虑到Isaac Sim/Isaac Lab由于比较新,可能不够稳定,因此还是按照官方文档进行部署。

weixin_44211433的博客 4587

Netty 客户端登陆流程

接上篇,九份小火车的驾驶室 终点站,熟悉吗?《那些年我们追过的女孩》场景之一 到了九份,依山而建,山下远处就是大海 像不像千与千寻里的,宫崎骏的千与千寻就是在这里完成构思 汤婆婆的屋 最后来张小吃店的图,好多小吃,人很多,很温馨。 ...

JavaBoy王皓 1781

Abaqus 2023 保姆级安装避坑指南:从环境变量到许可证配置,一次搞定

本文提供Abaqus 2023的详细安装指南,涵盖环境变量设置、许可证配置等关键步骤,帮助用户避开常见安装陷阱。通过系统环境检查、目录结构规划、许可证服务器安装及Java环境配置等实用技巧,确保顺利完成安装并优化软件性能。

weixin_42524276的博客 425

微信电脑客户端登陆_三步教你一个电脑同时登陆多个微信,很实用

一个电脑同时登陆4个微信的效果很多小伙伴在日常的工作和学习当中,经常会使用多个微信来相互传文件,或者交流,而默认的一个微信电脑客户端只能登陆一个微信账号,如果想在一个电脑上登陆多个微信,那只能用多个浏览器登陆网页版的微信,这样,临时一用还可以,但是毕竟不是长久之计。如果想要在一个电脑上使用客户端同时登陆多个微信,就像上面图片那样,很简单,分分钟就能学会。第一步:找到微信的图标,然后‘右键‘,然后点...

weixin_39647977的博客 1054

面试问题总结——关于YOLO系列(三)

接着上篇的的YOLO系列面试问题总结,加油,冲! 三.YOLOv3 1.YOLOv3主干网络BackBone——Darknet-53网络结构(因为有53个卷积层) (原论文中Darknet53的尺寸是在图片分类训练集上训练的,所以输入的图像尺寸是256x256,而在YOLOv3中输入尺寸是416×416)   ①上图中,Top-1 Accuracy和Top-5 Accuracy是指什么呢?区别在哪呢?   我们知道ImageNet有大概1000个分类,而模型预测某张图片时,会给出1000个按概率从高.

boss-dog 1万+

【AI for Medecine】吴恩达医学图像AI专项课程(诊断、预测、治疗)

近期需要简单了解AI4Science上的一些应用,看到吴恩达大佬的专项课程,于是开始来个“全面”的了解--医学人工智能(诊断、预测、治疗)。

图挖掘领域,新晋砖家 ☞ 未来可期,欢迎和静静一起学习交流吖 771

游戏客户端登陆流程

游戏登陆流程 #mermaid-svg-Vyf77TIjmmcATfDp .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-Vyf77TIjmmcATfDp .label text{fill:#333}#mermaid-svg-Vyf77TIjmmcATfDp .node rect,#mermaid-svg-Vyf

cchoop的博客 2638

【推荐100个unity插件】Animator 的替代品?—— Animancer Pro插件的使用介绍

Animancer与Unity Animator对比及使用指南 摘要: 本文对比了Animancer与Unity官方Animator的核心差异,分析了Animancer的优势特点。Animancer采用代码驱动模式,相比Animator的状态机系统更灵活高效,支持实时调试、动态混合和深度逻辑集成。文章详细介绍了Animancer的快速使用方法,包括动画播放、切换和触发机制,并区分了免费版与专业版的功能差异。适合需要高效动画开发、复杂交互逻辑的中小项目,为开发者提供了一种现代化的动画解决方案。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2434

简易登陆界面的实现

今天实现了登陆界面,通过与服务器的

onepiece2的专栏 2122

AI Agent在核电站安全监控中的应用

核电站作为一种高效的能源生产设施,其安全问题一直是全球关注的焦点。任何安全事故都可能导致严重的人员伤亡、环境污染和经济损失。传统的核电站安全监控系统主要依赖于人工操作和固定规则的监控算法,存在监控效率低、无法实时应对复杂情况等问题。本文章的目的在于探讨如何利用AI Agent技术提升核电站安全监控的智能化水平,实现实时、准确的监测和智能决策。范围涵盖了AI Agent的基本原理、在核电站安全监控中的应用场景、相关算法和数学模型,以及实际项目的开发和应用。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 370

lammps教程:MS转data文件出错原因分析及解决办法

使用ms建模是lammps建模的一种重要方法,但是ms建模转换为data过程中经常会出现各种各样的错误。 ms模型转data文件流程分两部分,一是ms建模、forcite设置力场并导出car文件,二是msi2lmp将car转为data文件。 任何一个环节出错都会导致无法得到data文件,最容易出错的是forcite力场设置环节。 forcite力场设置出错原因有很多,一个原因是缺乏某类原子的力场参数。 msi2lmp软件只能转换cvff或pcff力场的car文件,因此,如果力场中不包含某类原子的参数,在设置

lammps_jiayou的博客 5062

Linux SSH免密登陆

SSH是一种网络协议,用于计算机之间的加密登录,其具体的实现有很多,既有开源实现的OpenSSH,也有商业实现方案。Linux常用OpenSSH。 使用SSH协议,客户端需要安装openssh-clients,服务端需要安装openssh-server(系统默认安装好了)。 本文使用CentOS7系统,并用root用户登陆,服务端需要保证/etc/ssh/sshd_config 的配置正确,一些云服务器默认是不允许ROOT用户远程登陆的。 # 是否允许以root用户身份登录,默认可以 Permit..

CodingSoldier的博客 2万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

如何在ASP.net中实现限制一个用户名在多个客户端IE登陆的方法

最近做了个asp.net程序,根据要求,某用户名只能在x台机器上登陆(x为授权同时登陆数量),不允许超过x数量的用户再使用该用户名登陆。以前有人认为可以使用数据库某个字段来管理这个权限,但是数据库的弱点在于用户关闭浏览器时,不进行任何操作。我想了个办法,使用Application和Session。大体思路是这样的:每个登陆的客户端,都有一个SessionID,这些SessionID是唯一性的。登陆

trulli的专栏 2561

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Unity尝试制作王者荣耀(十三)客户端连接服务端登陆注册测试——Login场景

上一章节讲述了客户端与服务端如何进行消息的发送和接收,这篇我们通过登陆和注册来测试客户端与服务端信息的发送. 首先登陆注册代码编写 要与服务器进行通信的话,就要导入服务端与客户端定义好的协议,利用这个协议向服务器发送消息。首先从网上找到服务模块儿资源https://download.youkuaiyun.com/download/qq_40229737/12037672 消息处理中心:...

奋斗的菇凉的博客 1197

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

CAS支持客户端自定义登陆页面——客户端篇

让CAS支持客户端自定义登陆页面——客户端篇 2010-03-23 16:06 客户端即指使用CAS中央认证服务器的应用程序,而不是指用户浏览器 在上一篇《让CAS支持客户端自定义登陆页面——服务器篇》中我们介绍了如何修改CAS服务器端来支持客户端自定义登陆页面,这一节我们开始讲述客户端实现理论和详细修改 客户端实现目标 客户端实现主要需要满足5个case: ...

Jason的专栏 663

android平台下,淘宝客户端开发之——登陆

android平台下,淘宝客户端开发之——登陆 本文来自:http://hi.baidu.com/lynn_wong/blog/item/da5322c31a4f962ee5dd3b29.html 1.啰嗦的理论写在前面 在人们的印象中,各种社交网站的客户端都把登陆作为第一步,但对于淘宝客户端,我们没有必要这样做。这是由于,好多懒人们懒得登陆或注册,因此就不用你的客户端了,直接影响将近

mal327的专栏 5252
上一篇: 联通校园网不能开热点问题解决办法
下一篇: 配置文件中的相关元素和监听器
追梦小猿
博客等级 码龄10年 69粉丝 26原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值