nsisFirewall 1.2 -- 一个小巧简单的Windows防火墙插件
网站: http://wiz0u.free.fr/prog/nsisFirewall
---------------------------------------------------------

您可以使用nsisFirewall执行以下两个任务 :
- 添加应用程序到Windows防火墙例外列表
- 从Windows防火墙移除例外列表中的应用


用法
-----
nsisFirewall::AddAuthorizedApplication "<应用程序路径>" "<规则名称>"
nsisFirewall::RemoveAuthorizedApplication "<应用程序路径>"

<应用程序路径> 是要被授权的应用程序的完整路径
	访问网络 (或接受传入的连接)

<规则名称> 是在防火墙列表上显示的名称
	控制面板列表


返回值
------------

将会从堆栈中返回2个值
可能的状态是:
	0:  操作成功完成
	<0: 发生错误 (该值是一个HRESULT错误代码，请参阅MSDN上的信息)
	>0: 这样的状态不会被返回 (正确的HRESULT是成功代码)


笔记
-----
1) 您的安装程序必须以管理员权限运行，nsisFirewall才能正常工作
2) 如果你的应用是AddAuthorizedApplication将返回“找不到文件”HRESULT代码没有安装系统之前* *调用nsisFirewall上
3) RemoveAuthorizedApplication将返回成功，即使该应用程序不在例外列表
4) 在大多数情况下，你将不需要检查返回值（但不要忘了它）
5) 运行“FIREWALL.CPL”，将显示防火墙控制面板
6) 应与MSVC 6.0才能使用MSVCRT.DLL，因为更多的编译最近的运行时库DLL可能无法使用在目标系统上

示例脚本
--------------

	; 添加记事本到防火墙授权列表
	nsisFirewall::AddAuthorizedApplication "$WINDIR\Notepad.exe" "nsisFirewall Test"
	Pop $0
	IntCmp $0 0 +3
		MessageBox MB_OK "加入程序防火墙例外列表中发生了一个错误（result=$0）"
		Return
	MessageBox MB_OK "程序添加到防火墙的例外列表"

	; 从防火墙授权列表中删除记事本
	nsisFirewall::RemoveAuthorizedApplication "$WINDIR\Notepad.exe"
	Pop $0
	IntCmp $0 0 +3
		MessageBox MB_OK "移除程序防火墙例外列表时发生了一个错误（result=$0）"
		Return
	MessageBox MB_OK "从防火墙例外列表中移除成功"

版本历史记录
---------------
1.2 : added a Unicode-NSIS version (nsisFirewallW) -- Thanks to Guilherme B. Versiani
1.1 : Correctly handle 2 errors cases
1.0 : First release


协议
-------
Copyright (c) 2007-2009 Olivier Marcoux

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

    1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.

    2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.

    3. This notice may not be removed or altered from any source distribution.
