如果您只是检查防火墙是否已启用;你可以这样做:
NetFwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr", false);
INetFwMgr Manage = (INetFwMgr)Activator.CreateInstance(NetFwMgrType);
bool Firewallenabled = Manage.LocalPolicy.CurrentProfile.FirewallEnabled;
然后您可以将您的应用程序添加到授权应用程序中;
INetFwAuthorizedApplications applications;
INetFwAuthorizedApplication application;
// Input Application Name
application.Name = “Internet Explorer”;
// Locate .exe
application.ProcessImageFileName = "C:\\Program Files\\Internet Explorer\\iexplore.exe"
// Enable
application.Enabled = true;
// Authorize the Application
Type NetFwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr", false);
INetFwMgr Manage = (INetFwMgr)Activator.CreateInstance(NetFwMgrType);
applications = (INetFwAuthorizedApplications)mgr.LocalPolicy.CurrentProfile.AuthorizedApplications;
applications.Add(application);
您需要访问这些 COM 对象:
- NetFwTypeLib
- HNetCfg.FwMgr
请记住,这些是用 XP SP2 的旧 COM 对象编写的;Microsoft 建议您使用的地方:INetFwPolicy2。它适用于 Vista、7 和 8。这是一些文档,包括文章以及使用旧代码的几个示例;不知道这是否有帮助。希望确实如此。
维斯塔, 7, 8
XP 服务包 2:
详细介绍这些示例的博客;和解释。