我正在使用NSIS 2.46。我试图使用的插件是 HwInfo 插件(Official Link)。 ZIP文件附带一些源代码和DLL文件。我将HwInfo.dll
放在\NSIS\Plugins
目录中。添加插件时,我应该!include
.nsh
文件,HwInfo 不供应。
我正在尝试在安装之前分析客户端的硬件 -
Function .onInit
HwInfo::GetCpuSpeed
StrCpy $R0 $0
MessageBox MB_OK "You have a $0GHz CPU"
HwInfo::GetSystemMemory
StrCpy $0
MessageBox MB_OK "You have $0MB of RAM"
FunctionEnd
但HwInfo::GetCpuSpeed
行是'invalid command'
。
如何在没有NSH文件的情况下使用插件?还有其他选择吗?
解决:
我在此脚本的最顶部添加了!addplugindir "${NSISDIR}\Plugins"
。这有助于在编译时检测HwInfo.dll
目录中的\NSIS\Plugins
。
答案 0 :(得分:11)
并非所有插件都有.nsh文件,但维基页面通常会告诉您如何使用特定插件。
如果您运行makensis /V4 yourscript.nsi
,它将列出所有插件及其导出的功能,如果您的插件不在列表中,则可能不在正确的目录中。确保将其放在正确的目录中或使用!addplugindir
...
答案 1 :(得分:6)
我知道这个问题有一个已接受的答案,但有关使用 NSIS v3.x 的人的信息:
插件文件夹现在有两个子文件夹,一个用于ANSI,另一个用于UNICODE,因此您需要将插件复制到${NSISDIR}\Plugins\x86-ansi\
和${NSISDIR}\Plugins\x86-unicode\
以获取ANSI和UNICODE版本分别是插件dll。
我猜你是否使用64位NSIS端口,你也有\x64-ansi\
和\x64-unicode
个子文件夹,但我没有具体检查过。