我的innosetup脚本中有这个,但它根本没有在注册表中添加任何内容。

[Registry]
Root: HKLM; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "Test"; ValueData: "{app}\test.vbs";

知道为什么不加吗?
编辑:
测试:VBS:
Set oShell = CreateObject("Wscript.Shell")
Dim strArgs
strArgs = "cmd /c runpython.bat"
oShell.Run strArgs, 0, false

运行python.bat:
C:\Python27\python.exe "C:\Program Files (x86)\Google\dev_appserver.py" --host 0.0.0.0 --port 8080

最佳答案

好的-解决了,它是32位/64位,就像在评论中提到的。
Innosetup问题:

[Registry]
Root: HKLM64; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "Test"; ValueData: "{app}\test.vbs"; Check: IsWin64;

在Windows 64位PC上,这里需要的是hklm64而不是hklm
test.vbs问题:
Set oShell = CreateObject("Wscript.Shell")
Dim strArgs
strArgs = "cmd /c runpython.bat"
oShell.Run strArgs, 0, false

这里没有执行vbs,因为
strArgs = "cmd /c ""C:\program files\blabla.bat"""

关于windows - InnoSetup-HKEY_LOCAL_MACHINE如何添加值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24611897/

10-12 22:35