【C#】Winform工具-闪讯下快速分享Wifi(源码)

A.工具简介

最近忙着改论文,但迫于手机没有流量,反复共享电脑wifi的操作已经让我忍无可忍,而“猎豹wifi”“360wifi分享”等工具曾导致电脑多次睡死(可能是台式机的USB网卡兼容性问题)。因此抽空写了个便利工具,完全利用windows自带功能实现,主要合并了“命令提示符”的若干指令:

  1. 设置windows自带wifi热点;
  2. 开启、关闭wifi;
  3. 自动关机与取消;(主要是本人喜欢睡前趴床上再玩会手机,又懒得起身关电脑)

以及部分.NET对系统进行管理:

  1. 关闭闪讯进程(避免闪讯锁定共享功能);
  2. 利用windows自带的库实现自动共享,避免手动设置。(很多人可能卡在这步上)

经测试,本工具不影响闪讯心跳验证,上网稳定,不会像手动共享那样在几分钟后就会断网。

当然,如果不是浙江一带的校园网用户可能不需要闪讯这类进行拨号,直接开启热点进行分享即可。

Github源程序(项目文件): https://github.com/Blz-Galaxy/Tools-Wifi-Sharing


B.指令与执行

相关命令提示符(也可以用BAT脚本方式调用)

  • 设置系统自带的虚拟网卡Microsoft Virtual WiFi Miniport Adapter,从而创建热点(只需在首次使用前配置):

    netsh wlan set hostednetwork mode=allow ssid=Blz_Galaxy key=1234567890

此处热点标识为Blz_Galaxy,密码为1234567890,请自行修改。

  • 开启分享的Wifi热点

    netsh wlan start hostednetwork
  • 关闭Wifi热点

    netsh wlan stop hostednetwork
  • 定时关机(3600秒后关机):

    shutdown -s -t 3600
  • 设定关机后也可以取消关机计划

    shutdown -a
  • C#调用控制台指令方式

    System.Diagnostics.Process _pCmd;
    
    _pCmd = new System.Diagnostics.Process();
    _pCmd.StartInfo.FileName = "cmd.exe";
    _pCmd.StartInfo.UseShellExecute = false;
    _pCmd.StartInfo.RedirectStandardOutput = true;
    _pCmd.StartInfo.RedirectStandardInput = true;
    _pCmd.StartInfo.CreateNoWindow = true;
    _pCmd.Start();
    
    //执行目标指令
    _pCmd.StandardInput.WriteLine("shutdown -a");

 再一例:

  • Regex reg = new Regex(@"[\u4e00-\u9fa5]");//正则表达式
    if (reg.IsMatch(textBox1.Text) || reg.IsMatch(textBox2.Text))
    {
        MessageBox.Show("不能含有汉字");
        return;
    }
    if (textBox2.Text.Length < 8)
    {
        MessageBox.Show("密码8位以上");
        return;
    }
    
    _strWrite = String.Format("netsh wlan set hostednetwork mode=allow ssid={0} key={1}", this.textBox1.Text, this.textBox2.Text);
    _pCmd.StandardInput.WriteLine(_strWrite);

C.通过C# (.NET) 进行系统管理

  • 自动关闭指定进程(如闪讯的“singleNet”进程)

取代了人工在任务管理器中查找进程,解救密集恐惧症患者~

  • Process[] processes = Process.GetProcessesByName(ProcessName);
    foreach (Process instance in processes)
    {
        try
        {
            if (instance.ProcessName == ProcessName)
                instance.Kill();;
        }
        catch { }

具体可以参看:  【C#】指定进程关闭&闪讯下的Wifi共享

  • 调用\Windows\system32\hnetcfg.dll,即能使用“NETCONLib”实现自动共享 (关键)

    try
    {
        string connectionToShare = this.textBox3.Text; // 被共享的网络连接
        string sharedForConnection = this.textBox4.Text; // 需要共享的网络连接
    
        NetSharingManager manager = new NetSharingManager();
        var connections = manager.EnumEveryConnection;
    
        foreach (INetConnection c in connections)
        {
            var props = manager.NetConnectionProps[c];
            var sharingCfg = manager.INetSharingConfigurationForINetConnection[c];
            if (props.Name == connectionToShare)
            {
                sharingCfg.EnableSharing(tagSHARINGCONNECTIONTYPE.ICSSHARINGTYPE_PUBLIC);
            }
            else if (props.Name == sharedForConnection)
            {
                sharingCfg.EnableSharing(tagSHARINGCONNECTIONTYPE.ICSSHARINGTYPE_PRIVATE);
            }
        }
    }
    catch
    {
        MessageBox.Show("请打开网络和共享中心·查看是不是已经连接Internet!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }

取代手动进入“网络共享中心->更改适配器设置->singleNetPPPoE属性->共享->勾选允许分享internet->选择分享目标”这一连串操作,懒人福音~


时间: 2024-10-11 00:51:49

【C#】Winform工具-闪讯下快速分享Wifi(源码)的相关文章

QCustomplot使用分享(二) 源码解读

一.头文件概述 从这篇文章开始,我们将正式的进入到QCustomPlot的实践学习中来,首先我们先来学习下QCustomPlot的类图,如果下载了QCustomPlot源码的同学可以自己去QCustomPlot的目录下documentation/qcustomplot下寻找一个名字叫做index.html的文件,将其在浏览器中打开,也是可以找到这个库的类图.如图1所示,是组成一个QCustomPlot类图的可能组成形式. 一个图表(QCustomPlot):包含一个或者多个图层.一个或多个ite

linux下MySQL 5.6源码安装

linux下MySQL 5.6源码安装 1.下载:当前mysql版本到了5.6.20 http://dev.mysql.com/downloads/mysql 选择Source Code 2.必要软件包 yum -y install gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake 3.编译安装 添加用户 groupad

如何通过反编译工具与插件 查看java *.class 文件源码

Java Decompiler[java 反编译]:开发了反编译工具,可以方便查看*.class 文件源码.下面介绍几种查看源码的方式:工具&插件 1.JD-GUI JD-GUI  是显示java 源代码 *.class文件的 图形界面工具.可以在这里下载:JD-GUI-DownLoad 下载下来后,打开该工具,直接将jar包 拖拽到 显示窗口即可查看源代码. 举例:通过 jd-gui.exe 工具 查看 xUtils-2.6.14.jar 包 源码: 但是,一般开发用的是IDE(Integra

快速理解RxJava源码的设计理念

前言 我在看过几篇关于RxJava源码分析的博客后,不知是我的水平有限还是源码过于博大精深,导致花了很长的时间才搞清楚其运行原理.我个人觉得应该有更好的办法来快速剖析理解,于是决定写下本文. 本文适合已经看过一些RxJava源码分析资料的同学,不过没看过也没关系.在看本文时可参考这篇博客:RxJava基本流程和lift源码分析,它说得比较全,在此感谢博主大头鬼Bruce. 一.初探RxJava [以下摘录了RxJava基本流程和lift源码分析] 我们先来看一段最基本的代码,分析这段代码在RxJ

干货分享——android源码分享网站

干货分享--android源码分享网站 android源码应用分享站点,各种技术分支的源码都有,现在分享给大家 安卓源码服务专家 集合了大量的例子源码,总会找到你想要的 http://www.javaapk.com/ 泡在网上的日子 实时分享android最新的开源项目,大量的教程 http://www.jcodecraeer.com/ android的code4app--apkbus 大量的例子源码和android开发文档 http://d.apkbus.com/ 安卓巴士 http://ww

c#Winform程序的toolStripButton自定义背景应用示例源码

C# Winform程序的toolStrip中toolStripButton的背景是蓝色的,如何改变背景及边框的颜色和样式呢? 实现此功能需要重写toolStripButton的Paint方法 这里只是给出解决问题的思路和方法,如下图,当鼠标移到按钮上,背景会变为黑色 实现代码如下: ToolStripButton tsb = (ToolStripButton)sender; Rectangle rectButton = tsb.Bounds; Point p = toolStrip1.Poin

Linux下Zabbix_Server的安装-源码安装

Centos下Zabbix_Server/agent/proxy的安装配置 --------源码编译 完整版请查看附件 一.环境说明 a)软件环境 由于是源码安装,官方的zabbix源码包内已经包含了Server,Proxy, Agent, GUI所有组件和必要的执行脚本,截至本文正式版本限于2.2.3: LAMP环境 n操作系统使用Centos6.5 X86_64 最小化安装,并yum update到最新状态,内核版本为2.6.32-431.17.1.el6.x86_64: nMysql 使用

[hadoop]Windows下eclipse导入hadoop源码,编译WordCount

hadoop版本为hadoop1.2.1 eclipse版本为eclipse-standard-kepler-SR2-win32-x86_64 WordCount.java为hadoop-1.2.1\src\examples\org\apache\hadoop\examples\WordCount.java 1 /** 2 * Licensed under the Apache License, Version 2.0 (the "License"); 3 * you may not

语音分享应用源码

该源码是语音分享应用源码,本demo使用了科大讯飞语音识别作为分享内容的输入方式,同时也支持手动键盘输入分享内容,限制分享内容文字不能超过180个字符,分享内容输入完成后可以直接分享,分享SDK使用的时友盟社会化分享. - (IBAction)voiceRecognize:(id)sender { [self.textView resignFirstResponder]; _result = @""; [_iflyRecognizerView start];}- (void)onRes