5

我正在使用 NSIS 2.46。我尝试使用的插件是HwInfo插件(官方链接)。ZIP 文件带有一些源代码和一个 DLL 文件。我把HwInfo.dll里面的\NSIS\Plugins目录。添加插件时,我也应该添加HwInfo 不提供!include的文件。.nsh

我正在尝试在安装之前分析客户的硬件-

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

4

2 回答 2

11

并非所有插件都有 .nsh 文件,但 wiki 页面通常会告诉您如何使用特定插件。

如果您运行makensis /V4 yourscript.nsi它将列出所有插件及其导出的功能,如果您的插件不在列表中,则它可能不在正确的目录中。确保将其放在正确的目录中或使用!addplugindir...

于 2013-08-15T18:57:28.167 回答
7

我知道这个问题有一个公认的答案,但对于使用NSIS v3.x的人的信息:

插件文件夹现在有两个子文件夹,一个用于 ANSI,一个用于 UNICODE,因此您需要将插件分别复制到插件 dll 的 ANSI 和 UNICODE 版本中${NSISDIR}\Plugins\x86-ansi\${NSISDIR}\Plugins\x86-unicode\

我猜如果你使用 64 位 NSIS 端口,你也会有\x64-ansi\\x64-unicode文件夹,但我没有专门检查过。

于 2014-05-02T09:37:11.157 回答