NSIS 打包文件添加防火墙白名单
概述
如果應(yīng)用程序使用網(wǎng)絡(luò),擔(dān)心被防火墻攔截的話,通常有兩種解決方案,第一種是直接關(guān)閉電腦防火墻,但是會比較麻煩,每臺電腦安裝軟件后都需要設(shè)置防火墻狀態(tài), 并且關(guān)閉防火墻電腦會不安全;第二種方式就是添加程序到防火墻白名單中,也是就是說讓系統(tǒng)不對該程序進(jìn)行攔截,通常的做法都是第二種方案。
防火墻白名單
我們先來看看防火墻白名單長啥樣子。
打開windows防火墻頁面,如下:
左上角“允許應(yīng)用或功能通過防火墻”,點(diǎn)擊進(jìn)入
可以看到這里有很多已經(jīng)添加進(jìn)白名單的程序。
那么我們?nèi)绾巫屪约旱膽?yīng)用程序在安裝的時(shí)候自動添加防火墻白名單呢,其實(shí)很簡單,簡單幾句話就搞定了。
添加防火墻白名單進(jìn)出規(guī)則
NSIS打包文件代碼中,找到創(chuàng)建桌面快捷鍵處,直接在后面添加:
; 防火墻規(guī)則添加ExecDos::exec 'netsh advfirewall firewall add rule name="xxxxx" dir=in program="$INSTDIR\${PRODUCT_NAME}.exe" action=allow'ExecDos::exec 'netsh advfirewall firewall add rule name="xxxxx" dir=out program="$INSTDIR\${PRODUCT_NAME}.exe" action=allow'具體添加位置可參考:
注意,這里的xxxx要替換成應(yīng)用程序的別名,最好和應(yīng)用名區(qū)分開來,這是顯示在白名單中的名字,而PRODUCT_NAME就是程序名的字符串。
表示是安裝目錄下將應(yīng)用程序exe的的相對路徑。
這里兩句話分別更改了防火墻入站和出站規(guī)則。對應(yīng)到windows界面是在:
刪除防火墻規(guī)則
軟件卸載后,需要刪除防火墻規(guī)則。如下:
;防火墻規(guī)則刪除ExecDos::exec 'netsh advfirewall firewall delete rule name="xxxxx"'注意,這里的xxxxx要和上面的名稱保持一致,否則無法刪除。
添加位置可以在程序目錄被刪除后執(zhí)行。
總結(jié)
以上是生活随笔為你收集整理的NSIS 打包文件添加防火墙白名单的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt Remote Object(QtR
- 下一篇: Qt线程之QRunnable的使用详解