버튼에 따라 다른 외부 프로그램을 호출하여 실행하려고 하는데,
버튼을 클릭할때 마다 프로그램이 중복실행됩니다.
버튼 클릭 횟수에 상관없이 한번만 실행하고 싶습니다.
고수님들의 조언 부탁드립니다.
참고로 아래에 같이 코딩했구요......
if stFile = 'test1.exe' then
begin
if findwindow('test1.exe', nil) = 0 then
begin
WinExec('test1.exe', SW_HIDE);
end;
end
else
begin
if findwindow('test2.exe', nil) = 0 then
begin
WinExec('test2.exe', SW_HIDE);
end;
end;
허거걱~~~
FindWindow는 실행파일 이름으로 찾는것이 아니라 윈도클래스이름으로 윈도를 찾는 것
입니다. TForm, TButton,... 이런것들이 클래스이름입니다.
클래스 이름은 Spy나 델파이의 WinSight로 찾으실 수 있습니다.
^^ 항상 즐코하세요.
한정섭 wrote:
> 버튼에 따라 다른 외부 프로그램을 호출하여 실행하려고 하는데,
> 버튼을 클릭할때 마다 프로그램이 중복실행됩니다.
>
> 버튼 클릭 횟수에 상관없이 한번만 실행하고 싶습니다.
>
> 고수님들의 조언 부탁드립니다.
>
> 참고로 아래에 같이 코딩했구요......
>
> if stFile = 'test1.exe' then
> begin
> if findwindow('test1.exe', nil) = 0 then
> begin
> WinExec('test1.exe', SW_HIDE);
> end;
> end
> else
> begin
> if findwindow('test2.exe', nil) = 0 then
> begin
> WinExec('test2.exe', SW_HIDE);
> end;
> end;