Q&A

  • 윈도우XP에서 응용프로그램 List를 보고 프로그램을 종료가 가능한지요?
안녕하세요 다름이 아니라.

PC방 운영과 비슷한 프로그램을 델파이로 구현할려고 합니다.

그런데 프로세스에서 프로그램을 종료시키면 다 종료가 되는데

포트리스와 같은 일부 게임이 종료가 안되구 있습니다.

굉장히 급한 내용이라 답변 좀 부탁드리겠습니다.

1. 작업관리자에서 윈도우 응용프로그램 List를 구하는 방법
2. 응용프로그램을 종료하는 방법

이렇게 2가지만 알려 주시기 바랍니다.

그럼 즐코하시고 좋은 하루 보네세요.
1  COMMENTS
  • Profile
    김동수 2004.08.31 18:22
    이렇게 함 해보세요...XP로 테스트는 못해봤구요 윈도98, 2000 델7 에서 테스트 했습니다.(포트리스나 골드윙 같은 게임을 죽여보았습니다.)

    현재 작업 표시줄에있는 응용프로그램 리스트를 가져올 수 있습니다.

    어플리케이션의 캡션네임을 이용해서 죽일수가 있습니다.

    function EnumWindowsProc(Wnd: HWND; List: TListbox): Boolean; stdcall;
    var
      Caption: array[0..128] of Char;
    begin
      Result := True;
      if IsWindowVisible(Wnd) and ((GetWindowLong(Wnd, GWL_HWNDPARENT) = 0) or (HWND(GetWindowLong(Wnd, GWL_HWNDPARENT)) = GetDesktopWindow)) and
        ((GetWindowLong(Wnd, GWL_EXSTYLE) and WS_EX_TOOLWINDOW) = 0) then
      begin
        SendMessage(Wnd, WM_GETTEXT, Sizeof(Caption), integer(@Caption));

        List.Items.AddObject(Caption, TObject(Wnd));

      end;

    end;


    procedure TForm1.Button6Click(Sender: TObject);
    var
      i: integer;
      IExplorer: Thandle;
    begin

      ListBox1.Clear;
      EnumWindows(@EnumWindowsProc, Integer(ListBox1));

      i := 0;
      while i <= listbox1.Count - 1 do
      begin
          PostMessage(FindWindow(nil, pchar(listbox1.Items.Strings[i])), WM_QUIT, 0, 0);
        inc(i);
        next;
      end;
    end;


    도움이 되셨을런지....