2016-11-21 103 views
0

登錄我想.bat文件運行時機器啓動後(或可替代每當用戶已登錄)運行.bat文件,只要用戶在

爲此,我做了這一段代碼:

  string subKey = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"; 
      RegistryKey key; 
      if (ClientSystem.Is64BitOperatingSystem) 
      { 
       key = RegistryKey.OpenBaseKey(
        RegistryHive.LocalMachine, 
        RegistryView.Registry64 
       ).OpenSubKey(subKey); 
      } 
      else 
      { 
       key = Registry.LocalMachine.OpenSubKey(subKey, true); 
      } 
      key.SetValue("websocket", @"c:\websocket\run.bat"); // error here 

當運行這個我得到一個錯誤告訴我,我沒有權限更改文件。

由於@Tolanj提到它可能是一個想法,加上實際的錯誤信息:

Der kan ikke skrives til registreringsdatabasenøglen.

這將轉化爲類似

Couldn't write to the database registration key

運行該程序的用戶具有管理員聯繫權利和程序以管理員身份運行

如何更改權限以便在機器啓動時運行腳本或者是是否有更好的方法來實現我正在尋找的功能?

+1

「我得到一個錯誤,告訴我,我沒有權限更改文件」 =>後的實際,準確錯誤信息。 – tolanj

+0

@tolanj:我不知道錯誤有多大用處:「Der kan ikke skrivesregistreringsdatabasenøglen。」是給你的。這就是爲什麼我沒有添加它;-) –

+1

什麼時候發生錯誤?它是'.OpenSubKey()','.SetValue()'還是在run.bat文件運行時發生? – Oliver

回答

2
   key = RegistryKey.OpenBaseKey(
       RegistryHive.LocalMachine, 
       RegistryView.Registry64 
      ).OpenSubKey(subKey); 

需求是:

   key = RegistryKey.OpenBaseKey(
       RegistryHive.LocalMachine, 
       RegistryView.Registry64 
      ).OpenSubKey(subKey, true); 

來打開修改