【发布时间】:2012-11-27 12:46:01
【问题描述】:
如果启用了防火墙产品,我如何(从用 C# 编写的 Windows 窗体应用程序)检测?
这是我的代码,我在 INetFwMgr 上遇到错误,找不到类型或命名空间
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private const string CLSID_FIREWALL_MANAGER = "{304CE942-6E39-40D8-943A-B913C40C9CD4}";
INetFwMgr manager = GetFireWallManager();
bool isFirewallEnabled = manager.LocalPolicy.CurrentProfile.FirewallEnabled;
private static INetFwMgr GetFireWallManager()
{
Type objectType = Type.GetTypeFromCLSID(new Guid(CLSID_FIREWALL_MANAGER));
return Activator.CreateInstance(objectType) as INetFwMgr;
}
private void button1_Click(object sender, EventArgs e)
{
if (isFirewallEnabled == false)
{
MessageBox.Show("Firewall is not enabled.");
}
else
{
MessageBox.Show("Firewall is enabled.");
}
}
}
}
【问题讨论】:
-
您是否缺少 using 指令?
-
是的。如何解决这个问题?
-
将命名空间 Microsoft.TeamFoundation.Common 添加到您的代码中。请参阅我的答案中的补充内容。
-
没有像 Microsoft.TeamFoundation.Common 这样的 dll,而是有 Microsoft.TeamFoundation.WorkItemTracking.Client....我添加了这个命名空间,但它仍然显示相同的错误...我我在 Framwork 2.0 中做我的应用程序
标签: c# windows-applications windows-firewall windows-firewall-api