我正在使用NSIS 2.46.我试图使用的插件是HwInfo插件(官方链接).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
Run Code Online (Sandbox Code Playgroud)
但是这条线HwInfo::GetCpuSpeed是'invalid command'.
如何在没有NSH文件的情况下使用插件?还有其他选择吗?
解决了:
我!addplugindir "${NSISDIR}\Plugins"在这个脚本的顶部添加了.这有助于在编译时检测HwInfo.dll内部\NSIS\Plugins目录.
And*_*ers 11
并非所有插件都有.nsh文件,但维基页面通常会告诉您如何使用特定插件.
如果你运行makensis /V4 yourscript.nsi它会列出所有插件和它们导出的函数,如果你的插件不在列表中,它可能不在正确的目录中.确保将其放在正确的目录中或使用!addplugindir...
我知道这个问题有一个公认的答案,但对于使用NSIS v3.x的人的信息:
该插件文件夹现在有两个子文件夹,一个是ANSI,一个用于UNICODE,所以你需要你的插件复制到${NSISDIR}\Plugins\x86-ansi\和${NSISDIR}\Plugins\x86-unicode\为ANSI和Unicode版本的插件分别的DLL.
我猜,如果你使用64位的NSIS端口,你必须\x64-ansi\和\x64-unicode子文件夹太多,但我还没有检查了明确.