Im은 게임 PSOBB에 대한 소형 로더를 만들었지 만 오프라인 버전의 경우 "servers"라는 폴더로 이동하여 3 개의 서버 실행 파일을 모두 실행하도록합니다. 이 프로그램을 만드는 중이 야. 그래서 내 문제는 다른 폴더 (sub dir)에서 .exe를 시작하는 버튼을 만들었다는 것입니다.Process.Start() 프로세스가 올바르게 시작되지 않음
private void startLoginServerButton_Click(object sender, EventArgs e)
{
Process[] killLoginServer = Process.GetProcessesByName("login_server");
if (killLoginServer.Length == 0)
{
Process.Start("servers\\login_server.exe");
System.Threading.Thread.Sleep(1000);
refresh(); // This goes to another method and checks if the program is running
}
else if (killLoginServer.Length > 0)
{
foreach (Process stop in killLoginServer)
{
stop.Kill();
}
System.Threading.Thread.Sleep(1000);
refresh();
}
}
프로세스가 실행 중인지 여부와 실행 중인지 여부를 확인합니다. 문제는 버튼을 누르면 시작할 수 있지만 완전히로드되지 않으므로 닫히지 만 프로세스를 수동으로 시작하면 문제가 없습니다. 관리자로 내 로더를 실행하려고했지만 아무것도 ... 나는 전체 경로를 지정했지만 문제는 여전히있었습니다. 해당 위치에있는 모든 프로세스를 시작할 때 완전히 그 경로를 한정해야
경로가 잘못
동일한 시스템 또는 원격 폴더 점유율이 실행 파일이 있습니까? –
ProcessStartInfo.WorkingDirectory를 설정하지 않으면 제대로 작성된 프로그램이 제대로 작동하지 않습니다. 파일을로드하기 위해 상대 경로 이름을 사용하면 파일이 손상되고 구워지는 경향이 있습니다. 코드 스 니펫 에서처럼. WorkingDirectory를 EXE와 동일한 경로로 설정하십시오. –