2014-01-22 1 views
0

게임에 연결하는 프로그램을 만들려고합니다 ("빠른 연결").C# admin rights issues

관리자로 응용 프로그램을 시작하고 게임에 연결하면 이상한 문제가 발생합니다 (예 : 단축키가 게임 키에 응답하지 않고 게임에서 일부 모델 파일이로드되지 않음). 관리자 권한이 잘 작동하지만 다른 목적 (파일 작업)에 대한 관리자 권한이 필요합니다.

나는 runas 명령 줄 명령으로 프로그램을 다시 실행하려고 시도했지만 응용 프로그램에는 관리자 권한이 없었지만 여전히 게임이 제대로 작동하지 않습니다.

// OnClick event 
ProcessStartInfo proc = new ProcessStartInfo("cmd.exe", "/c runas /trustlevel:0x20000 \"myapp.exe rerun\""); 
proc.WorkingDirectory = Application.StartupPath; 
proc.CreateNoWindow = true; 
proc.UseShellExecute = false; 
Process.Start(proc); 

// Program.cs 
if(!admin && args[0].Equals("rerun")) 
{ 
    ProcessStartInfo proc = new ProcessStartInfo("cmd.exe", "/c game.exe ipAndPortToConnect"); 
    proc.WorkingDirectory = Application.StartupPath; 
    proc.CreateNoWindow = true; 
    proc.UseShellExecute = false; 
    Process.Start(proc); 
} 

많은 조합을 시도했지만 그 중 아무 것도 작동하지 않았습니다.

나는 당신이 작업 관리자를 선택하면, 당신은 게임을 볼 수 있습니다

+1

이상한 문제는 무엇인가요? –

+0

죄송합니다. 작성하는 것을 잊어 버렸습니다. 단축키는 게임 키에 응답하지 않으며 게임에서 일부 모델 파일을로드하지 않습니다. – Chris

+0

어떤 OS에서이 프로그램을 실행하고 있습니까? Windows 7 및 Windows 8에서는 특정 기능에 대해 앱 서명이 필요할 수 있습니다. – Codeman

답변

0

을 일으키는 원인이 도대체 ... 여전히 다른 사용자, 즉 관리자 권한으로 실행 무엇을 알아낼 수 없습니다. 이것은 게임이 사용자 프로필에 정보를 저장한다는 것을 의미합니다 (예 : 구성 파일의 바로 가기 키와 같은 AppSettings) 또는 AppData에 저장된 게임 수정으로 인해 언급 한 문제가 발생할 수 있습니다.

프로그램을 다시 실행 한 사용자는 권한은 낮지 만 승격 된 사용자이지만 해당 사용자가 게임을 시작합니다. 운영 체제가 로그인 한 사용자로 실행되는 것으로 생각할 때까지 프로세스를 올바르게 "부정한"할 수는 없으므로 다른 작업을해야합니다.

사용자 별 리소스를 사용자가 아닌 게임과 관련된 경로로 옮길 수 있는지 또는 다른 방법으로 직접 프로세스를 시작할 수 있는지 (예 : 예약 된 작업 사용) 확인할 수 있습니다.

그러나 existing question을 왜 업데이트하지 않으셨습니까?

+0

아, 프로세스 소유자를 사용자에게 어떻게 변경시킬 수 있습니까? – Chris

+0

두 번째 단락을 읽을 수는 없습니다. – CodeCaster

+1

오케이, 감사합니다. – Chris