2011-06-15 79 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的安裝程序。