::: 델파이 Tip&Trick :::

델파이 Tip&Trick 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  김영대(2003-03-07 10:41:19, Hit : 3153, Vote : 1013
 외부 프로그램의 좌표,상태 구하기

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
  WinExec('Notepad', SW_SHOWNORMAL); // 테스트용 프로그램
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  WinHandle: HWND;
  // windows.pas에 WINDOWPLACEMENT 가 아닌 TWindowPlacement 로 타입선언이 되있음
  WinPlac: TWindowPlacement;
begin
  Label1.Caption := '';
  Label2.Caption := '';

  WinHandle := FindWindow('Notepad', nil);
  if WinHandle > 0 then
    if IsWindowVisible(WinHandle) then
    begin
      FillChar(WinPlac, SizeOf(WinPlac), 0);
      WinPlac.length := SizeOf(WinPlac);
      GetWindowPlacement(WinHandle, @WinPlac);
      // 윈도우즈가 표준상태일때의 좌표를 구한다
      Label1.Caption := 'Left: ' +IntToStr(WinPlac.rcNormalPosition.Left) +#13#10+
                        'Top: ' + IntToStr(WinPlac.rcNormalPosition.Top) +#13#10+
                        'Right: ' + IntToStr(WinPlac.rcNormalPosition.Right) +#13#10+
                        'Bottom: ' + IntToStr(WinPlac.rcNormalPosition.Bottom);

      // 윈도우즈 상태(show state)를 구한다
      case WinPlac.showCmd of
        SW_HIDE:
          Label2.Caption := 'HIDE';
        SW_MINIMIZE:
          Label2.Caption := 'MINIMIZE';
        SW_RESTORE:
          Label2.Caption := 'RESTORE';
        SW_SHOW:
          Label2.Caption := 'SHOW';
        SW_SHOWMAXIMIZED:
          Label2.Caption := 'SHOWMAXIMIZED';
        SW_SHOWMINIMIZED:
          Label2.Caption := 'SHOWMINIMIZED';
        SW_SHOWMINNOACTIVE:
          Label2.Caption := 'SHOWMINNOACTIVE';
        SW_SHOWNA:
          Label2.Caption := 'SHOWNA';
        SW_SHOWNOACTIVATE:
          Label2.Caption := 'SHOWNOACTIVATE';
        SW_SHOWNORMAL:
          Label2.Caption := 'SHOWNORMAL';
      end;
    end;
end;

end.





491   [일반/컴포넌트] TRichEdit 의 선택된 영역만 인쇄하기  김영대 2003/03/07 4432 718
490   [시스템] CPU 종류 구하기  김영대 2003/03/07 4782 1193
489   [시스템] 사운드파일 없이 PC 스피커로 음악연주  김영대 2003/03/07 4616 923
488   [네트웍/인터넷] 프로그램으로 네트워크 드라이브 연결/해제  김영대 2003/03/07 6683 1245
487   [일반/컴포넌트] 윈도우즈 종료와 같은 그늘진 화면 만들기  김영대 2003/03/07 3130 836
486   [일반/컴포넌트] 아이콘 사이트  김영대 2003/03/07 3606 1067
485   [시스템] 윈도우즈 시스템 표준 폰트 구하기  김영대 2003/03/07 3010 846
484   [네트웍/인터넷] RS232 통신  김영대 2003/03/07 6892 1853
483   [일반/컴포넌트] 주어진 영역의 화면 캡처  김영대 2003/03/07 3553 1008
482   [일반/컴포넌트] 숫자를 영문 표기로 바꾸기  김영대 2003/03/07 4237 886
481   [일반/컴포넌트] 숫자를 한글 표기로 바꾸기  김영대 2003/03/07 3594 927
480   [일반/컴포넌트] RichEdit 의 내용을 Bitmap 으로 만들기 2  김영대 2003/03/07 3759 979
479   [COM/OLE] MS-WORD 종료시키기  김영대 2003/03/07 2647 742
478   [윈도우즈 API] 시스템 사운드 연주하기  김영대 2003/03/07 4775 1296
477   [일반/컴포넌트] Algorithm to sort a TStringGrid #2  김영대 2003/03/07 4759 1197
  [윈도우즈 API] 외부 프로그램의 좌표,상태 구하기  김영대 2003/03/07 3153 1013
475   [윈도우즈 API] 윈도우즈 Telnet 으로 호스트 접속하기  김영대 2003/03/07 4060 1117
474   [일반/컴포넌트] 특정한 폴더로 이동한 DOS 창 띄우기  김영대 2003/03/07 4093 1134
473   [시스템] DOS 명령어 실행하고 결과 받아오기  김영대 2003/03/07 6531 1548
472   [윈도우즈 API] NT의 현재 user가 administrative privilege 를 가지고 있는지?  김영대 2003/03/07 2964 808
471   [일반/컴포넌트] 두개의 StringGrid sync 마추기  김영대 2003/03/07 3690 1017
470   [일반/컴포넌트] 윈도우의 title bar 폰트 바꾸기  김영대 2003/03/07 3211 839
469   [네트웍/인터넷] 네트워크 공유 설정/해제 하기 (Windows 9x)  김영대 2003/03/07 4361 1078
468   [네트웍/인터넷] 네트워크 공유 정보 읽어오기 (WIndows 9x)  김영대 2003/03/07 3631 969
467   [일반/컴포넌트] 눌려진 키보드 키의 명칭 구하기  김영대 2003/03/07 7358 1437
466   [윈도우즈 API] Windows98 에서의 SetForegroundWindow  김영대 2003/03/07 5722 1489
465   [윈도우즈 API] Task bar 에 나타나지 않는 프로그램 만들기  김영대 2003/03/07 5137 1508
464   [COM/OLE] Outlook 사용하기  김영대 2003/03/07 3456 1090
463   [시스템] 지정한 drive가 CD-ROM 인지 검사하기  김영대 2003/03/07 6275 1649
462   [시스템] 어떤 어플리케이션이 시작 되는지 hook으로 알아내기  김영대 2003/03/07 5081 1507
461   [윈도우즈 API] 윈도우즈 탐색기의 아이콘 뽑아내서 사용하기  김영대 2003/03/07 6445 1887
460   [윈도우즈 API] System Images  김영대 2003/03/07 6284 1828
459   [윈도우즈 API] 컴퓨터/파일/폴더 찾기 화면 띄우기  김영대 2003/03/07 6146 1470
458   [일반/컴포넌트] Unix-format time 을 TDateTime 로 바꾸기  김영대 2003/03/07 4086 1121
457   [일반/컴포넌트] 실행시 component 를 Move/Resize 시키기  김영대 2003/03/07 3295 951
456   [일반/컴포넌트] TMemo 를 화면크기로 인쇄하기  김영대 2003/03/07 2727 692
455   [일반/컴포넌트] SpeedButton 에 OnMouseEnter/OnMouseExit 이벤트 넣기  김영대 2003/03/07 3929 1041
454   [윈도우즈 API] 키보드의 Scroll Lock 켜기/끄기  김영대 2003/03/07 4135 1135
453   [데이터베이스] table packing 하기  김영대 2003/03/07 3446 1000
452   [윈도우즈 API] reboot Windows  김영대 2003/03/07 3865 1119

[이전 10개] [1]..[11][12] 13 [14][15][16][17][18][19][20]..[25] [다음 10개]
 

Copyright 1999-2022 Zeroboard / skin by zero