2012-09-27 37 views
3

我安装一个应用程序在Windows 7机器(我的应用程序的目标是一个特定的设备),我试图让它在OS启动时运行/登录。安装程序忽略WriteRegStr(尝试应用程序添加到启动运)

这是一个Silverlight OOB应用程序,我想这可能是一个问题,但我用记事本测试,它仍然无法正常工作。

我跟着例子here

!include "MUI.nsh" 

Name "Tech Drive Installer" 
OutFile "techdrive_setup.exe" 
InstallDir "$PROGRAMFILES\Tech Drive" 

RequestExecutionLevel admin 
ShowInstDetails show 

!insertmacro MUI_LANGUAGE "English" 

Section 
    SetOutPath "$INSTDIR" 
    SetOverwrite ifnewer 

    File "TechDrive.xap" 
    ExecWait '"$PROGRAMFILES\Microsoft Silverlight\sllauncher.exe" /install:"$INSTDIR\TechDrive.xap" /origin:"http://localhost/TechDrive.xap" /shortcut:desktop' 

    WriteRegStr HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Run\" "TechDrive" '"$PROGRAMFILES\Microsoft Silverlight\sllauncher.exe" 3388701632.localhost' 
SectionEnd 

为什么这是不是可以正常工作?

+1

它是32位还是64位操作系统? – Seki

回答

5

的WriteRegStr调用该32位Win7的机器上运行良好。在写信给HKLM时,你应该make sure you are admin

如果您使用的是64位操作系统,你最终会写入WOW64 part of the registry。在NSIS中,你可以用SetRegView指令来控制它,但Run键应该可以工作。

您可以使用Autoruns来验证该值已正确添加或直接使用Process Monitor进行监控。如果它仍然无法启动,我会仔细检查路径以确保它是正确的。 (在启动时运行的程序不允许要求管理员权限)

+1

啊,谢谢。我不知道单独的32/64位注册表部分。这是问题所在,因为它适用于我的32位平板电脑。 – gfyans

相关问题