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