2010-02-02 6 views
2

process.info, process start();를 사용하고 있습니다. C# .net에서 버튼을 클릭하면 exe를 호출 할 수 있지만 버튼을 클릭 할 때마다 exe가 호출되고 작업 표시 줄에 중복 파일이 열립니다. 이미 작업 표시 줄에있는 exe를 최대화하고 싶습니다.exe를 한 번만 호출하는 절차

버튼 클릭시 동일한 파일이 반복해서 열리는 문제가 있습니다. exe를 한 번만 열 수있는 방법이 있습니까? 버튼을 클릭하면 중복 항목을 작성하는 대신 이미 열린 경우 exe 파일을 최대화 할 수 있습니까?

답변

1

Process.Start()Process 개체를 반환합니다. 당신이 할 수있는 일은 단추를 클릭 할 때 초기화되는 클래스 변수 (예 : Process startedProcess;)입니다. 프로세스가 아직 시작되지 않았 음을 의미하는 해당 변수가 null이고 해당 응용 프로그램이 시작되어야합니다. 그렇지 않으면 이미 실행 중이므로 무시해야합니다. 여기

기본적인 예입니다

Process startedProcess = null; 

public void button1_Clicked(object sender, EventArgs e) 
{ 

    if (startedProcess == null) 
      startedProcess = Process.Start("path\\to\\process.exe"); 

} 

가 자동으로 응용 프로그램이 이미 실행되고있는 경우에 그 창으로 전환하고자하는 경우, .NET 메서드에 내장 어떤 기본적으로이 작업을 수행 할 필요가 없습니다 . user32.dll에서 DLLImports해야합니다. 이 페이지의 설명에있는 예는 다음과 같습니다. http://www.eggheadcafe.com/community/aspnet/14/21984/switch-to-another-runnin.aspx