2012-09-27 40 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

相關問題