4

我正在将应用程序安装到 Windows 7 机器(我的应用程序针对一个特定设备),并且我试图让它在操作系统启动/登录时运行。

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

我按照这里的例子:

!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

为什么这不起作用?

4

1 回答 1

6

WriteRegStr 调用在这台 32 位 Win7 机器上运行良好。写信给 HKLM 时,您应该确保您是 admin

如果您使用的是 64 位操作系统,您最终将写入注册表的 WOW64 部分。在 NSIS 中,您可以使用SetRegView指令来控制它,但是 Run 键应该可以工作。

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

于 2012-09-27T17:09:58.843 回答