C#, cmd 명령어 창 안보이게 실행하기


C#으로 프로그램을 만들다보니 사용자 계정 컨트롤 박스가 뜨지 않도록 해야 하는 상황이 발생했다.
사용자 계정 컨트롤 박스가 뜨지 않도록 하는 방법을 찾아보니 아래의 cmd 명령어를 찾을 수 있었다.

윈도우7 사용자 계정 컨트롤 disable 명령어
> C:\\Windows\\System32\\cmd.exe /k %windir%\\System32\\reg.exe ADD HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System /v EnableLUA /t REG_DWORD /d 0 /f

윈도우7 사용자 계정 컨트롤 enable 명령어
> C:\\Windows\\System32\\cmd.exe /k %windir%\\System32\\reg.exe ADD HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System /v EnableLUA /t REG_DWORD /d 1 /f


명령어를 찾았으니 프로그램 실행 시 위 명령어를 실행하도록 해야한다.

다시 좀 찾아보니 외부 프로그램은 아래 같은 방식으로 실행하면 된다고 한다.
Process.Start("cmd.exe");




그런데 나는 cmd 명령어를 실행시켜야 한다.

다시 좀 더 찾아보니 아래 방식으로 하면 위의 명령어를 실행 시킬 수 있다.

string msg = "C:\\Windows\\System32\\cmd.exe /k %windir%\\System32\\reg.exe ADD HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System /v EnableLUA /t REG_DWORD /d 0 /f";

                

ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe", msg);

Process process = new Process();

                

process.StartInfo = startInfo;

process.Start();

process.Close();







그런데!!! cmd 창이 사라지질 않는다. 이제는 cmd 창에서 명령어를 실행시키되, 실행 후 cmd 창을 닫아야 한다.! 다시 더 찾아본다. 결국 아래 코드로 완성.!!

string msg = "C:\\Windows\\System32\\cmd.exe /k %windir%\\System32\\reg.exe ADD HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System /v EnableLUA /t REG_DWORD /d 0 /f";

                

ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe", msg);

Process process = new Process();

startInfo.WindowStyle = ProcessWindowStyle.Hidden;

startInfo.CreateNoWindow = true;

                

process.StartInfo = startInfo;

process.Start();

process.Close();


휴~

댓글 없음:

댓글 쓰기

안녕하세요 :)