程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> [C#]Winform工具-閃訊下快速分享Wifi(源碼)

[C#]Winform工具-閃訊下快速分享Wifi(源碼)

編輯:C#入門知識

[C#]Winform工具-閃訊下快速分享Wifi(源碼)


A.工具簡介          最近忙著改論文,但迫於手機沒有流量,反復共享電腦wifi的操作已經讓我忍無可忍,而“獵豹wifi”“360wifi分享”等工具曾導致電腦多次睡死(可能是台式機的USB網卡兼容性問題)。因此抽空寫了個便利工具,完全利用windows自帶功能實現,主要合並了“命令提示符”的若干指令:   設置windows自帶wifi熱點; 開啟、關閉wifi; 自動關機與取消;(主要是本人喜歡睡前趴床上再玩會手機,又懶得起身關電腦)         以及部分.NET對系統進行管理:   關閉閃訊進程(避免閃訊鎖定共享功能); 利用windows自帶的庫實現自動共享,避免手動設置。(很多人可能卡在這步上)         經測試,本工具不影響閃訊心跳驗證,上網穩定,不會像手動共享那樣在幾分鐘後就會斷網。           當然,如果不是浙江一帶的校園網用戶可能不需要閃訊這類進行撥號,直接開啟熱點進行分享即可。       M[AVEDG@)2W%]ZD$IJ4FQOO               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 { }

 

    調用\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->選擇分享目標”這一連串操作,懶人福音~

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved