最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在C#中調(diào)用Windows防火墻界面的常見方式

 更新時間:2025年11月23日 13:45:35   作者:降薪碼農(nóng)  
在 C# 中調(diào)用 Windows 防火墻界面(基礎(chǔ)設(shè)置或高級安全設(shè)置),可以使用 進(jìn)程啟動(Process.Start) 或 Win32 API 來實現(xiàn),所以本文給大家介紹了C#調(diào)用Windows防火墻界面的常見方式,需要的朋友可以參考下

引言

在 C# 中調(diào)用 Windows 防火墻界面(基礎(chǔ)設(shè)置或高級安全設(shè)置),可以使用 進(jìn)程啟動(Process.Start) 或 Win32 API 來實現(xiàn)。以下是幾種常見方式:

1. 直接啟動防火墻界面

(1) 打開基本防火墻設(shè)置(firewall.cpl)

using System.Diagnostics;

Process.Start("firewall.cpl"); // 直接調(diào)用控制面板防火墻界面

(2) 打開高級防火墻設(shè)置(wf.msc)

Process.Start("wf.msc"); // 直接打開防火墻高級安全設(shè)置

2. 以管理員權(quán)限運行

由于防火墻設(shè)置通常需要 管理員權(quán)限,可以使用 ProcessStartInfo 提權(quán)運行

using System.Diagnostics;

var startInfo = new ProcessStartInfo
{
    FileName = "wf.msc",   // 或者 "firewall.cpl"
    UseShellExecute = true,
    Verb = "runas"         // 請求管理員權(quán)限
};

try
{
    Process.Start(startInfo);
}
catch (Exception ex)
{
    Console.WriteLine($"未能啟動:{ex.Message}");
}

3. 調(diào)用控制面板的方式

如果希望 更加嚴(yán)格地調(diào)用系統(tǒng)控制面板,可以使用:

Process.Start("control.exe", "/name Microsoft.WindowsFirewall");

說明:Windows 11 可能使用新的設(shè)置界面,該方法適用于 Windows 10 及更早版本。

4. 使用 COM+ 控制防火墻(高級)

如果你希望在 C# 中動態(tài)管理防火墻規(guī)則(而不只是打開界面),可以使用 INetFwPolicy2

using System.Runtime.InteropServices;

public class FirewallHelper
{
    [DllImport("ole32.dll")]
    private static extern int CoCreateInstance(
        [In] ref Guid rclsid,
        IntPtr pUnkOuter,
        uint dwClsContext,
        [In] ref Guid riid,
        out INetFwPolicy2 firewallPolicy);

    [Guid("98325047-C671-4174-8D81-DEFCD3F03186"), InterfaceType(ComInterfaceType.InterfaceIsDual)]
    private interface INetFwPolicy2
    {
        int CurrentProfileTypes { get; }
        bool FirewallEnabled { [return: MarshalAs(UnmanagedType.VariantBool)] get; }
        // ... 其他方法
    }

    public static bool IsFirewallEnabled()
    {
        var guid = new Guid("E2B3C97F-6AE1-41AC-817A-F6F92166D7DD");
        var riid = new Guid("98325047-C671-4174-8D81-DEFCD3F03186");
        CoCreateInstance(ref guid, IntPtr.Zero, 1, ref riid, out INetFwPolicy2 policy);

        return policy.FirewallEnabled;
    }
}

注意

  • INetFwPolicy2 需要 管理員權(quán)限 才能調(diào)用。
  • 這種方法可以 讀取防火墻狀態(tài)、添加/刪除規(guī)則,但不能 直接打開 GUI。

5. 使用 Windows API 更深入地操控

如果要 精確控制規(guī)則(如放行端口/程序),可使用:

using NetFwTypeLib; // 需引用 COM "Windows Firewall Admin Type Library"

public static void AddFirewallRule()
{
    Type fwPolicyType = Type.GetTypeFromProgID("HNetCfg.FwPolicy2");
    INetFwPolicy2 fwPolicy = (INetFwPolicy2)Activator.CreateInstance(fwPolicyType);

    INetFwRule rule = (INetFwRule)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule"));
    rule.Name = "My Custom Rule";
    rule.Description = "Allow Port 8080";
    rule.Protocol = (int)NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP;
    rule.LocalPorts = "8080";
    rule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN;
    rule.Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW;
    rule.Enabled = true;

    fwPolicy.Rules.Add(rule);
}

需要 管理員權(quán)限 且 引用 COM NetFwTypeLib(Windows Firewall Admin Type Library)

總結(jié)

需求方法是否需要管理員權(quán)限?
打開 普通防火墻界面Process.Start("firewall.cpl")? 不需要
打開 高級安全防火墻Process.Start("wf.msc")? 不需要
提權(quán)運行(確保打開成功)ProcessStartInfo + Verb="runas"? 需要
查看/修改防火墻規(guī)則INetFwPolicy2(COM)? 需要
動態(tài)管理防火墻規(guī)則NetFwTypeLib(COM 庫)? 需要

如果你的目標(biāo)是 簡單地打開防火墻界面,方法 1 或 2 就足夠了。
如果需要 編程方式管理規(guī)則,才需要 COM(方法 4/5)。

以上就是在C#中調(diào)用Windows防火墻界面的常見方式的詳細(xì)內(nèi)容,更多關(guān)于C#調(diào)用Windows防火墻界面的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#遞歸算法之快速排序

    C#遞歸算法之快速排序

    快速排序由C.A.R發(fā)明,它依據(jù)中心元素的值,利用一系列遞歸調(diào)用將數(shù)據(jù)表劃分成越來越小的子表。在每一步調(diào)用中,經(jīng)過多次的交換,最終為中心元素找到最終的位置。
    2016-06-06
  • C#Js時間格式化問題簡單實例

    C#Js時間格式化問題簡單實例

    這篇文章介紹了C#Js時間格式化問題簡單實例,有需要的朋友可以參考一下
    2013-10-10
  • C#?實現(xiàn)Ping遠(yuǎn)程主機功能及代碼演示

    C#?實現(xiàn)Ping遠(yuǎn)程主機功能及代碼演示

    這篇文章主要介紹了C#?實現(xiàn)Ping遠(yuǎn)程主機功能,本教程將演示1.0.2版本更新功能,以及實現(xiàn)的具體代碼演示,需要的朋友可以參考下
    2024-05-05
  • Unity3D獲取當(dāng)前鍵盤按鍵及Unity3D鼠標(biāo)、鍵盤的基本操作

    Unity3D獲取當(dāng)前鍵盤按鍵及Unity3D鼠標(biāo)、鍵盤的基本操作

    這篇文章主要介紹了Unity3D獲取當(dāng)前鍵盤按鍵及Unity3D鼠標(biāo)、鍵盤的基本操作的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • C#中無邊框窗體移動的簡單實例

    C#中無邊框窗體移動的簡單實例

    拖動無邊框窗體Form至桌面任何位置,有需要的朋友可以參考一下
    2013-08-08
  • Unity3d 如何更改Button的背景色

    Unity3d 如何更改Button的背景色

    這篇文章主要介紹了unity3d GUI.Button 自定義字體大小及透明背景方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • C#程序調(diào)用cmd.exe執(zhí)行命令

    C#程序調(diào)用cmd.exe執(zhí)行命令

    這篇文章介紹了C#程序調(diào)用cmd.exe執(zhí)行命令的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • WPF使用HLSL實現(xiàn)百葉窗動畫效果

    WPF使用HLSL實現(xiàn)百葉窗動畫效果

    百葉窗動畫是制作PPT時常用的動畫之一,本文將通過實現(xiàn)百葉窗動畫效果的例子介紹在WPF中如何使用ShaderEffect,感興趣的小伙伴可以了解一下
    2023-09-09
  • C#打印PDF文檔的10種方法(小結(jié))

    C#打印PDF文檔的10種方法(小結(jié))

    這篇文章主要介紹了C#打印PDF文檔的10種方法(小結(jié)),可分多種情況來進(jìn)行,如設(shè)置靜默打印、指定打印頁碼范圍和打印紙張大小、雙面打印、黑白打印等等,一共分成10種等,感興趣的可以了解一下
    2019-04-04
  • C#讀取QQ純真IP數(shù)據(jù)庫QQWry.Dat的代碼

    C#讀取QQ純真IP數(shù)據(jù)庫QQWry.Dat的代碼

    QQ純真IP庫算是IP地址收集較為全的一個IP庫,對于IP查詢來說這個是不錯的選擇。下面是如何查詢純真IP庫的一個類,使用C#代碼。
    2007-03-03

最新評論

伊春市| 永州市| 大足县| 浑源县| 长海县| 清水河县| 琼结县| 北安市| 双城市| 宁远县| 石首市| 五原县| 综艺| 专栏| 洛扎县| 遂昌县| 洞头县| 互助| 新郑市| 南华县| 珠海市| 乌海市| 荔波县| 云梦县| 普安县| 邹平县| 缙云县| 林芝县| 博客| 庆元县| 北碚区| 灵石县| 梁山县| 岳西县| 乌鲁木齐市| 兖州市| 石景山区| 福建省| 宜章县| 和政县| 察隅县|