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();
휴~
댓글 없음:
댓글 쓰기
안녕하세요 :)