2011-06-15 80 views
1

我们正在研究侦听某些端口的应用程序。我们真的想避免使用正确的安装程序,因此我们无法在此时打开防火墙。如何检测Windows防火墙是否要求用户许可

第一次运行应用程序时,Windows弹出一个对话框,询问用户的权限。此时,我们希望延迟执行,直到用户点击是(或否,就此而言)。

目前我们使用这样的:

while(FindWindow("Windows Security Alert")) { 
    Sleep(1000); 
} 

..这工作,但并不坚如磐石。据我所知,firewall api不提供此信息。

奖励问题:还有一种方法可以检测用户是否点击是或否?

+0

IMO这是一个设计缺陷。你应该尝试连接,然后再尝试几次。如果失败,则可以通知用户说他们的防火墙可能阻止了它。 – 2011-06-15 11:06:13

+0

或者您可以在继续之前让用户处理任何此类对话 – SamB 2015-03-15 23:06:57

回答

0

在这里你可以找到一些关于如何在C#代码中自己打开filewall端口的代码http://www.shafqatahmed.com/2008/01/controlling-win.html 当然,你的应用程序必须运行提升才能执行此操作。

网络上还有几个安装程序可以提供此功能。例如(不幸的是不是开源的):uTorrent的安装程序。