2012-07-10 2 views
1

Windows 7 (x86) 및 내 콘솔 응용 프로그램 (C#)이 있습니다. 내 응용 프로그램에서 나는 새로운 프로세스를 실행해야합니다. 응용 프로그램은 단지에서 구성 : Process.Start (string); - 몇 초 동안 프로세스가 시작됩니다. C#

Process.Start(filename);

앱이들이받은, 그것은 새로운 프로세스를 생성하지만 그는 심지어 initializated되지 않고, 몇 초 후에 파괴한다. 그것을 실행 -

내가 Windows에서 응용 프로그램을 필요로 실행하면
"proc.MainModule" threw exception "System.ComponentModel.Win32Exception" 
NativeErrorCode = 299 
ExitCode = -3 

: 디버그에서 나는이 정보를 참조하십시오. 제발, 아무도 도와 줄 수 있습니까?

관리자로 실행하면 동일한 오류가 발생합니다.

ReadProcessMemory or WriteProcessMemory didn't complete successfully. Process.Start(); 이 오류는 var proc = Process.Start(filename); 이후의 디버그에서 볼 수 있습니다.

AOgame.exe - 내 실행 응용 프로그램입니다. 그것은 Allods 게임의 exe 파일입니다. 다른 응용 프로그램을 실행하려고하면 정상적으로 시작됩니다. 나는 AOgame.exe에 문제가 있다고 생각한다. 그러나 나는 오류를 제거하는 방법을 모른다.

AOgame.exe의 속성에는 인수가 없습니다.

나는 그것이 속임수 방지 기능이라고 생각합니다. 하지만 cmd-console에서 실행하려고하면 작동 할 것입니다.

예! 나는 해결책을 찾았다! 첫째 - 배치 파일을 생성, 느릅 나무는 그런 AOgame.exe를 실행합니다 - 내 응용 프로그램 그것은 이상한 해결책에서 배치 파일을 실행하지만, 작동 : D

+3

몇 가지 코드를 보여줄 수 있습니까? 오류 코드 299는 ReadProcessMemory 또는 WriteProcessMemory에 대한 호출이 성공적으로 완료되지 않았 음을 의미하므로 새 프로세스로 수행하려는 작업을 파악하는 것이 매우 중요해 보입니다. – dlev

+1

아마도 어떤 프로세스를 시작하려고하는지 말할 수 있습니까? –

+0

여하튼, 시작하려고하는 실행 파일이 64 비트 또는 32 비트인지 확인하십시오. 또한, 자신의 "filename"[Process.Start (filename)]에있는 "filename"을 실행할 수 있고 오류가 발생하면 알려 주실 수 있습니까? –

답변

0

는 아마도 프로세스가 작업 디렉토리에있는 일부 파일이 필요합니다 ... 다음과 같이, 당신이 false로 설정 인 UseShellExecute와 ProcessStartInfo를 인스턴스를 사용하는 것이 좋습니다 것입니다

ProcessStartInfo processInfo = new ProcessStartInfo("foo.exe"); 
processInfo.WorkingDirectory = @"C:\bar"; 

Process.Start(processInfo); 
+0

답변 주셔서 감사합니다. 그러나 이것은 작동하지 않습니다. – user1515479

+0

아마도 게임에 안티 - 속임수 방지 기능이 있습니까? cmd-console 및/또는 자체 제작 배치 파일로 게임을 직접 시작할 수 있습니까? – MaxKlaxxMiner

+0

나는 그것이 속임수 방지책이라고 생각한다. 하지만 cmd-console에서 실행하려고하면 작동 할 것입니다. – user1515479

0

:

ProcessStartInfo processInfo = new ProcessStartInfo("AOGame.exe"); 
processInfo.UseShellExecute = false; 

Process.Start(processInfo); 
01

시도하여 작업 디렉토리를 설정합니다

이렇게하면 셸/도우미 루틴에 의존하기보다는 실행 파일에 제공된 프로세스 이름으로 시작을 직접 처리해야합니다. AOGame.exe가 내부적으로하는 것에 대한 자세한 내용을 제공 할 수 있다면 도움이 될 것입니다. 당신이 당신의 창에서 작업 링크가있는 경우

+0

감사합니다. 그러나 이것은 도움이되지 않았습니다. – user1515479

+0

AOGame.exe가 수행하는 작업에 대한 기술적 인 지침을 더 제공 할 수 있습니까? 정말로 도움이 될 것입니다. –

+0

또 다른 아이디어로 잘못된 종류의 토끼를 쫓지 않고 있다는 것을 증명하기 위해 시작 매개 변수에서 메모장과 같은 매우 간단한 응용 프로그램을 호출하고 제대로 시작하는지 확인할 수 있습니까? –

0

이 시도 할 수 있습니다 시작 메뉴 :

Process.Start("explorer.exe", @"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\foo\bar.lnk"); 

... 나는 몇 시간 동안 그 작업을했습니다 :-D

+0

Interesting think! 그러나 이것은 효과가 없다. – user1515479

0

을 포기하지 말아 .

 string pathak="AOgame.exe"; 
     string rty = pathak.Remove(pathak.Length - 5); 
     string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\"; 
     Process.Start(path + rty + "exe"); 

희망이 : 내가 디버거가 실제로이 코드를 사용할 수 있습니다 내 말은 대신이

Process.start(path); 

을 할 수있는 프로세스를 실행하기위한 문자열을 이해하지 않는 것을 발견 도와주세요.

관련 문제