C#应用程序开机自启动

自己之前写了个校园网自动登陆的工具(戳我戳我),设置成了开机自启动。不过我的设置方法比较繁琐,先右键exe文件,生成快捷方式,再从开始菜单中找到“启动”文件夹,把这个快捷方式放进去。想到对于绝大多数人来说,这个方法十分复杂,甚至是不可完成的,还是在应用中加个开机自启动的选项比较方便~ 想到shadowsocks客户端有个设置自启动功能,并且是开源的,源码托管在github,哦不,准确说是“曾经”。由于某些原因,有关当局下令让作者删除了源码,不过还是可以在long-live-shadowsocks项目中找到(https://github.com/Long-live-shadowsocks)。 代码使用C#,自启动的相关代码在\shadowsocks-csharp\Controller\System\AutoStartup.cs可以找到。 具体如下: using System; using System.Windows.Forms; using Microsoft.Win32; namespace Shadowsocks.Controller { class AutoStartup { p […]

shadowsocks全局代理导致校园网自动登陆程序失效

SEU Wlan自动登陆程序是我自己写的一个校园网快速登录工具,用的http协议模拟登陆 突然某一天,挂了,一打开就卡死,然后就失去响应 一直也没心情去管   今天闲来无事,打开vs,单步调试,发现卡在了http的response那一句 结合电脑的状况分析,一定是因为开了shadowsocks的全局代理模式,果断转为PAC代理模式,果然好了     原创文章,转载请注明: 转载自张哲的博客本文链接地址: shadowsocks全局代理导致校园网自动登陆程序失效

C# async await 并行执行多任务

.NET 4.5之后版本提供了async 和 await关键字,让多线程的实现优雅了许多.尤其是网络通信时,妈妈再也不用担心我的程序界面会假死啦!~ 最近我一直在做一个网页抓取的程序,已经采集到了一大批要抓取的url存在了数据库中,目前单线程吭哧吭哧一天也抓不完几个. 便想到让await并行执行,在C#圣经上看了这一章,但是并没有提到如何让await并行执行,只好自己动手测试.   经过几番尝试,最终可用的demo代码如下: 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.Windows.Forms; using System.Threading; namespace MultiAsyncTest1 { public partial […]

C# WinForm 文本框自动滚动

方案一: textBox1.AppendText("要显示的文本" + Environment.NewLine);     方案二: textBox1.Text += "要显示的文本" + Environment.NewLine; //下方将进度条滚动到最后,应当在每一次textBox1.Text +=后都要添加下方语句 textBox1.SelectionStart = textBox1.TextLength; textBox1.ScrollToCaret(); 总体来说,第一种比较简单方便. 第二种方案由于使用了 += 运算,可能每次都将光标(Caret)移动到了文本的开头,使用第二种方法在实际过程中会看到垂直滚动条突然跳到最前的位置,然后立即跳到最后. 建议采用第一种方案 原创文章,转载请注明: 转载自张哲的博客本文链接地址: C# WinForm 文本框自动滚动

C# System子空间无法使用(解决方案)

首先,这个题目起的我也不知所云,但是作为一个初学者,确实不知道该怎么表述。 具体情况是在学习使用System.Net.Http.HttpClient的时候,需要使用System.Net.Http命名空间,可是我在实操的时候,根本找不到Http这个子空间(我也不知道有没有子空间这个术语,反正就这么个意思吧)。 检查了使用的.Net的版本,是4.5无误,为保险起见又切换成了4.5.1了,依然没有。   解决方法: 项目-->添加引用-->见下图   (喵了个咪的,原来System空间的一些功能还要自己添加引用的,我果然是新手啊。。) 原创文章,转载请注明: 转载自张哲的博客本文链接地址: C# System子空间无法使用(解决方案)

C#多线程避免用户界面死锁

在编写winform应用程序时,当主线程中要处理耗时任务时,往往会导致用户界面(以下称为UI)的假死,即UI不响应用户的鼠标,键盘等操作. 耗时任务有很多种,比如: 向远程服务器发送和请求数据(http,smtp等); 大量的运算(信号处理,大量数据处理等); 其他(暂时只遇过以上两种情况) 以前最常使用编程环境是LabVIEW,在LabVIEW中只要架构合理就可以避免UI假死情况的发生,我常用的架构是生产者-消费者循环(具体内容可参考NI Community).在这种架构中,事件的接收和处理是放在两个不同的线程中进行的,线程之间使用线程安全的队列进行通信,所以耗时任务的处理并不会影响UI的响应,只是任务处理结果的输出会有延时. 在C#中,也可以使用这种思想来避免UI假死,不过实现起来相对LabVIEW要复杂不少, 首先是要用户自己管理线程, 第二是在C#新版本中,界面控件只可以由创建它的线程对其进行修改,也就是说在主线程中创建的控件,只能由主线程进行修改,如果在其他线程中使用诸如 textBox.Text = "xxx";这样的语句是没有效果,并且会导致异常.这种问题需要使用dele […]

SEU-WLAN自动登陆Win客户端设计规划

背景: 为密码安全起见,浏览器设置为不自动保存密码,每次登陆校园网,需要手动输入账号密码以完成统一认证.   在正常情况下,网络接入均是使用教育网IPv6连接海外VPS(支持IPv4及IPv6)以实现类似6to4的免费上网. 教育网IPv6免费接入,不限时,不限流量,带宽1Gbps(下载曾达到60MBytes每秒).VPS服务器每月流量500G,接入带宽1Gbps(实际使用一般只能达到100Mbps). 经常使用PT或迅雷等通过代理下载电影等资源,大多为1080p或蓝光,大多为几十G每部. 在文献查找时,常需要使用校园网IP登陆商业数据库以搜索和下载论文. 校园网流量5元10G,在文献查找完成后,需断开校园网登陆,以避免计算机部分设置考虑不周导致流量偷跑.(在下载时,10G流量10分钟就跑光了)   基本需求: 编写Win客户端,可实现校园网统一认证的自动登陆和退出,以保护校园网流量不被偷跑. 需要具有本地保存账号密码功能,以实现一键登录.   后续需求: 本地账号密码加密保存,保护密码安全. 应用内登陆校园网自助服务系统,查询目前在线终端,剩余流量,服务 […]