2

我的程序如何强制 windows7 防火墙让我通过,或引发错误?

我的 boost asio UDP 点对点代码正在运行。今天它行不通。我检查了防火墙,我的开发目录中的 a.exe 仍然被授权为私有和公共访问。

凭直觉,我将 a.exe 重命名为 a1.exe,运行它,windows 询问我是否要允许它使用网络。现在它再次起作用了!

我的猜测是windows7会记住a.exe上的校验和,当我编译新功能时它会阻止网络访问,但它忘记从授权列表中删除a.exe,所以它没有给我弹出请求。

对于开发,我每次都可以使用一个新名称,但是当它向 beta 测试人员推出时,这将是一场支持噩梦。

如何在我的代码中检查和/或请求授权?

4

1 回答 1

0

问题实际上完全独立于boost框架。

好吧,似乎有不同的 API 可以控制 Windows 防火墙,具体取决于操作系统版本(XP/Vista)。这里有一些有用的资源和代码示例:

http://msdn.microsoft.com/en-us/library/aa364726%28v=VS.85%29.aspx

http://www.vedivi.com/support/blog/72-configure-your-firewall-in-c.html

也相关:

为什么启用 Windows 基本过滤引擎服务后,我的应用程序无法接收 UDP 数据包?

于 2012-07-26T13:12:19.407 回答