摘要: 其实这些东西网上都有,但是比较凌乱,很少有封装好的类,在此共享一下。。。 一个Socket服务器类,一个Socket客户端类,都可以直接拿去用,下边有详细的调用示例。 需要说明的是,服务器类没有处理多客户连接,只是简单的响应单客户连接。 另外,提醒一点,尤其是很多新手容易犯的错误,就是服务器类处理事务是在线程中进行的,此时不能访问界面上的控件,需要委托跨线程访问。Socket服务器类(SocketServicesHelper.cs):using System; using System.IO; using System.Net; using System.Net.Sockets; using. 阅读全文
posted @ 2012-11-28 17:00 杨元 阅读(5375) 评论(0) 推荐(1) 编辑
摘要: 在用C#操作注册表时,如果注册表键的类型是REG_DWORD,有可能遇到溢出BUG。网上这方面的资料很少,在这共享一下。 C#可以用RegistryKey类的SetValue方法来设置键值,例如: 看起来一切正常,但是这个RegistryValueKind.DWord是有问题的。 注册表中的REG_DWORD是无符号32位数值,而C#中的RegistryValueKind.DWord是有符号32位数值。这就意味着RegistryValueKind.DWord的表示范围比REG_DWORD小,因此导致直接传入一些大数时会抛出异常提示类型不正确。 那么如何解决这个BUG呢? 读者可能试图这样做:. 阅读全文
posted @ 2012-11-28 16:28 杨元 阅读(1515) 评论(0) 推荐(0) 编辑
摘要: 关于禁用USB接口,有一种方法是在注册表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer位置新建键“NoDrives”,类型是REG_DWORD,通过设置其值,隐藏某个驱动器盘符;再新建一个键“NoViewOnDrive”,类型也是REG_DWORD,通过设置其值,禁止访问某个驱动器。 这些应该很好理解,U盘也是驱动器,当然可以禁用。可是问题就出在“通过设置其值”,如何设置? 关于如何设置,网上有“详细”说明,可是说的太晦涩,估计大家抄来抄去,自己也不知道是什么意思,就在网上发教程了,导. 阅读全文
posted @ 2012-11-28 14:22 杨元 阅读(1260) 评论(0) 推荐(0) 编辑