2017-08-04 4 views
-7

スルー私は.BATファイルを必要とせず、背景proccessなしとされた順にしてindividualy C#のスルーこれらのコマンドを実行する必要があります。実行カスタムコマンド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

私は本当にあなたに何をしたいのか、そしてあなたに何か助けてくれるかもしれません。ここで

」は、それぞれのコマンドに呼び出すメソッド:Rundll32のを実行するための方法で

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();   
    } 

を...

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分ごとに実行させます。それが役に立てば幸い。

関連する問題