Nsis临时文件夹

Nsis临时文件夹,nsis,Nsis,在.onInit函数中调用Kernel32::GetTempFileName时,我检索一个空文件名。但是,当我从一节中调用它时,一切都很好 你能解释一下原因吗?我建议你只需调用.onInit并将其用作临时文件夹即可。它将在退出时自动删除 $PLUGINSDIR 第一次使用时创建的临时文件夹的路径 插件或对InitPluginsDir的调用。此文件夹将自动删除 安装程序退出时删除 使用System::Call时,引用所有字符串参数非常重要: Function .onInit DetailPrint

.onInit
函数中调用
Kernel32::GetTempFileName
时,我检索一个空文件名。但是,当我从一节中调用它时,一切都很好

你能解释一下原因吗?

我建议你只需调用
.onInit
并将其用作临时文件夹即可。它将在退出时自动删除

$PLUGINSDIR

第一次使用时创建的临时文件夹的路径 插件或对InitPluginsDir的调用。此文件夹将自动删除 安装程序退出时删除


使用
System::Call
时,引用所有字符串参数非常重要:

Function .onInit
DetailPrint "Temp folder - $TEMP"
System::Call 'Kernel32::GetTempFileName(t $TEMP, t "tmp", i 0, t.r0) i.r1 
DetailPrint "Temp folder name - $0" //$0  gives empty string
FunctionEnd

请考虑使用
$pluginsdir
,就像另一个答案所建议的那样,这是一个更好的解决方案,因为它不会在最终用户的机器上留下垃圾…

您发布的代码甚至不会编译。。。
Section
System::Call 'Kernel32::GetTempFileName(t "$TEMP", t "tmp", i 0, t.r0) i.r1'
DetailPrint |$0|
SectionEnd