본문으로 바로가기



이노셋업에서 프로그램 창을 종료하는 함수


특정 프로그램을 종료 해야한다거나 


IE창을 종료해야할 경우 사용하면 좋다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function ProcessClose(ClassName: string);
var
  hWnd, prevhWnd, i: Integer;
begin
  prevhWnd := 0;
  hWnd := FindWindowByClassName(ClassName);
  while (hWnd > 0do begin
    PostMessage(hWnd, 1600);
    prevhWnd := hWnd;
    hWnd := FindWindowByClassName(ClassName);
    if (prevhWnd = hWnd) then begin
     for i := to 10 do begin
       hWnd := FindWindowByClassName(ClassName);
       if (prevhWnd = hWnd) then
         Sleep(100);
       end
    if (prevhWnd = hWnd) then
      hWnd := 0;
    end
  end
end

cs


창의 클래스 네임명으로 창의 핸들을 찾아 종료해 주는 함수이다.


뭐.. 핸들값을 던져줘서 할려면 핸들 찾는 명령 부분만 수정해서 사용하면 될 듯..


이외에 프로그램 명령으로 taskkill 명령으로 강제종료도 가능하다.


IE를 종료할 경우 ProcessClose('IEFrame') 을 하면 종료가 가능함.


IE를 종료하기 위해 만든거라 하위단의 클래스명을 입력해도 해당 프로그램 종료가 가능하다


IEFrame은 IE의 클래스명.