2017-08-04 81 views
-7

我需要運行秩序和individualy通C#,而不需要一個.bat文件,並沒有與作爲背景proccess這些命令:在CMD運行自定義命令通C#

reg add "HKCU\control panel\desktop" /v wallpaper /t REG_SZ /d "" /f 
 
reg add "HKCU\control panel\desktop" /v wallpaper /t REG_SZ /d "C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\system86\86.png" /f 
 
reg delete "HKCU\Software\Microsoft\Internet Explorer\Desktop\General" /v WallpaperStyle /f 
 
reg add "HKCU\control panel\desktop" /v WallpaperStyle /t REG_SZ /d 2 /f 
 
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters

+0

你的意思是這個會在你想要的時候執行?例如點擊一個按鈕 –

+0

在.exe的開頭 – jotalanusse

回答

0

我並沒有真正想要做什麼,但我可能有些東西可以幫助你。

這裏相互調用命令的方法:

public static void RunCmd(string command) 
    { 
     System.Diagnostics.Process p; 
     p = new System.Diagnostics.Process(); 
     p.StartInfo.FileName = "cmd.exe"; 
     p.StartInfo.Arguments = command; 
     p.Start(); 
     p.Close();   
    } 

爲了方法來運行RUNDLL32 ...

public static void RunDLL() 
    { 
     System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
     proc.StartInfo.FileName = "rundll32.exe"; 
     proc.StartInfo.Arguments = "shell32.dll,UpdatePerUserSystemParameters"; 
     proc.Start(); 
    } 

讓每個命令字符串列表,並調用方法:

static void Main(string[] args) 
    { 

     List<string> commands = new List<string>(); 
     commands.Add(SOME COMMAND WELL FORMATTED); 
     commands.Add(SOME COMMAND WELL FORMATTED); 
     ... 

     foreach (string s in commands) 
     { 
      RunCmd(s); 
     } 
     RunDLL(); 

    } 

如果您想讓它在後臺運行,請在發佈模式下進行編譯, 執行。如果您想在啓動時執行一次,請在啓動時將其啓動,或者如果您希望永久性執行此操作,請使其延遲一段時間,或使Windows任務每隔X分鐘運行一次。希望能幫助到你。