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
当我在Kernel32::GetTempFileName
函数中调用.onInit
时,我会检索一个空文件名。但是当我从部分调用它时一切都还可以!
你能解释一下为什么吗?
答案 0 :(得分:3)
我建议您只需拨打.onInit
中的InitPluginsDir
并使用$PLUGINSDIR
作为临时文件夹即可。它将在退出时自动删除。
$ PLUGINSDIR
首次使用a时创建的临时文件夹的路径 插件或对InitPluginsDir的调用。此文件夹是自动的 安装程序退出时删除。
答案 1 :(得分:0)
使用System::Call
时引用所有字符串参数非常重要:
Section
System::Call 'Kernel32::GetTempFileName(t "$TEMP", t "tmp", i 0, t.r0) i.r1'
DetailPrint |$0|
SectionEnd
请考虑使用$pluginsdir
,如其他答案所示,这是一个更好的解决方案,因为它不会在最终用户机器上留下垃圾...