-4

我想让一些程序通过 Windows 防火墙使用 C# 编程(支持窗口 7)进行通信。但我不能。

4

1 回答 1

2

您可以使用互操作访问用于配置防火墙的 COM 对象。

具有高级安全参考的 Windows 防火墙

要使用互操作访问 API,您需要在互操作程序集中创建。你可以用它tlbimp.exe来做到这一点。

  1. 打开 Visual Studio 命令提示符。
  2. 将目录更改为合适的可写文件夹。
  3. 执行命令tlbimp FirewallApi.dll

互操作程序集在名为NetFwTypeLib.dll. 在 C# 项目中添加对此文件的引用。

要创建一个对象,您需要编写如下代码:

var firewallPolicy = (INetFwPolicy2) Activator.CreateInstance(
  Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));

您需要使用ProgID上面链接的文档中指定的正确方法,然后需要将返回的对象转换为正确的接口。从那时起,您可以使用 IntelliSense 探索 API。

于 2012-08-27T10:00:00.653 回答