2016-07-28 4 views
0

저는 C#에 익숙하지 않습니다. 이전에 그것을 어지럽 혔습니다. 그러나 저는 지금 그것을 정말로 알고 싶습니다. 게임용 외부 콘솔 응용 프로그램을 만들고 싶습니다. 게임은 나쁜 포트이며 더 많은 게임을 실행하기 위해 백그라운드에서 열리는 많은 프로그램이 필요합니다. 그래서 나는 launcher.exe를 게임 시작시 모든 프로그램을 시작하는 프로그램으로 대체하고 게임이 종료 될 때 프로그램을 종료하는 프로그램을 만들기로 결정했습니다.프로세스. 게임 응용 프로그램을 시작하지 않으시겠습니까?

게임은 정확하게 BioShock 2이지만,이 프로그램을 만들 수있는 가능성이 높기 때문에이 프로그램을 사용할 수있는 다른 게임에서도 사용할 수 있습니다. 내 문제는 여기에 있지만, 디버그를 시작하면 게임 (FlawlessWidescreen)을 돕기위한 프로그램 중 하나가 열리지 만 게임 자체는 열리지 않습니다. BioShock2를 실행 해 보았지만 빠른 실행 속도를 보여 주었다가 닫히고 오류가 없으므로 잘못된 작업을 정확하게 파악할 수 없습니다.

여기 내 코드가 있습니다.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Diagnostics; 
using System.Security; 

namespace Bioshock2_Advanced_Launcher 
{ 
     public class SecurityException : SystemException 
    { 
     static void Main(string[] args) 
     { 
      Process.Start("F:\\Steam Library\\steamapps\\common\\BioShock 2\\SP\\Builds\\Binaries\\FlawlessWidescreen.lnk"); 
      Process.Start("F:\\Steam Library\\steamapps\\common\\BioShock 2\\SP\\Builds\\Binaries\\Bioshock2.exe"); 
     } 
    } 
} 

FlawlessWidescreen

바로 가기, 난 내가 관리자로 모든 시간을 응용 프로그램을 실행할 필요가 없었어요 그래서 그것을 높은 권한을 부여했다.

다른 사용자가 BioShock2가 닫혀 있는지 확인하는 방법을 알고있는 사람이 있는지 알고 싶습니다. 다른 프로그램도 함께 닫힙니다. 어떤 아이디어?

감사

편집 : 나는 또한 다른 게임은 내가 완벽하게 정상적으로 발사 시도 것을 추가하고 싶습니다.

+0

이 과정을 유지하는 경우는 – BugFinder

+0

당신이 EnableRaisingEvents = TRUE ''설정'ProcessStartInfo' 객체의 시작을 수정 살아 여부를 확인할 수 있습니다 발생합니다. 그런 다음 시작된 프로세스를 변수에 저장하고'Exited' 이벤트를 연결하십시오. 그때까지 신청서를 보관하십시오. (https://msdn.microsoft.com/en-us/library/system.diagnostics.process.exited(v=vs.110).aspx) –

+5

프로그램 클래스 이름이 SecurityException : SystemException 인 이유는 무엇입니까? 프로그램으로 변경하십시오. – OrMiz

답변

0

WorkingDirectory를 사용하여 문제를 해결했습니다.

ProcessStartInfo bioshock2Info = new ProcessStartInfo(); 
bioshock2Info.FileName = (@"F:\Steam Library\steamapps\common\BioShock 2\SP\Builds\Binaries\Bioshock2.exe"); 
bioshock2Info.WorkingDirectory = Path.GetDirectoryName(@"F:\Steam Library\steamapps\common\BioShock 2\SP\Builds\Binaries\Bioshock2.exe"); 
Process bioshock2 = Process.Start(bioshock2Info);