2017-06-21 38 views
0

我已經設置了程序作爲Windows啓動運行,但該程序只能在Windows 10中以管理員身份運行時運行,任何人都可以告訴我應該在代碼中添加什麼設置那?這裏是我的維克斯代碼:Wix設置程序作爲管理員運行

在產品模塊有

<ComponentRef Id="RegistryEntries"/> 

然後

<Fragment> 
    <DirectoryRef Id="ProgramFilesFolder"> 
     <Component Id="RegistryEntries" Guid="14fe9526-0da4-4761-ad27-8a77f145c6b5"> 
     <RegistryKey Root="HKCU" 
        Key="Software\Microsoft\Windows\CurrentVersion\Run" 
       Action="createAndRemoveOnUninstall"> 
      <RegistryValue Type="string" Name="March Networks Video Assistant" Value="[INSTALLFOLDER]March Networks Video Assistant.exe" KeyPath="yes"/>   
     </RegistryKey> 
     </Component> 
    </DirectoryRef> 
    </Fragment> 

非常感謝你給大家。

回答

0

問題是你把這個註冊表項放在HKCU中,它會在啓動時在當前用戶的上下文中運行。

如果您希望它在啓動時以管理員身份運行,它需要進入HKLM。

嘗試以下操作:

<Fragment> 
    <DirectoryRef Id="ProgramFilesFolder"> 
    <Component Id="RegistryEntries" Guid="14fe9526-0da4-4761-ad27-8a77f145c6b5"> 
     <RegistryKey Root="HKLM" 
       Key="Software\Microsoft\Windows\CurrentVersion\Run" 
      Action="createAndRemoveOnUninstall"> 
     <RegistryValue Type="string" Name="March Networks Video Assistant" Value="&quot;[INSTALLFOLDER]March Networks Video Assistant.exe&quot;" KeyPath="yes"/>   
     </RegistryKey> 
    </Component> 
    </DirectoryRef> 
</Fragment> 

所以注意我改變HKCU到HKLM(這可能導致在編譯期間ICE警告,但可以放心地忽略它們)。如果您使用的是每用戶安裝,我不知道這是否能夠編寫註冊表項,除非以管理員身份運行安裝程序...另外,我還將&quot;放在RegistryValue的值附近,因爲它總是很好包裝完整由於空格引號引起的路徑。

你可以做的另一好處是使用可以使用以下語法引用組件的安裝路徑更新RegistryValue值:

[#IDOfFile]

所以,如果你的組件定義「三月網絡視頻Assistant.exe」 <File>使用編號= 「MarchNetworksVideoAssistant.exe」 您可以更新RegistryValue的價值

value="&quot;[#MarchNetworksVideoAssistant.exe]&quot;"

如果發現形式[#filekey]的一個子你可以得到這個語法here

的一個很好的解釋,它是由文件的完整路徑取代,作爲鑰匙插入值的FileKey File表。在安裝程序運行CostInitialize操作,FileCost操作和CostFinalize操作之前,[#filekey]的值保持空白並且不會被路徑替換。 [#filekey]的值取決於文件所屬組件的安裝狀態。如果組件是從源運行的,則該值是該文件源位置的路徑。如果該組件在本地運行,則該值是安裝後文件的目標位置的路徑。如果組件具有不存在的操作狀態,則組件的安裝狀態用於確定[#filekey]值。如果組件的安裝狀態也不存在或爲空,[#filekey]會解析爲空字符串,否則將根據組件的安裝狀態解析爲值。有關檢查組件安裝狀態的更多信息,請參閱檢查功能,組件,文件的安裝。

+0

非常感謝Brian,真的很有幫助! –

相關問題