Q&A

  • 마우스의 일정 좌표에서 클릭효과~~~~
화면의 어떤 좌표(x,y)에 클릭을 하고 싶으면 어떻게 하죠 ㅠ.ㅠ;;;;



아직은 모르는것이 많은 초보입니다....잘 부탁드립니다.

2  COMMENTS
  • Profile
    김영대 1999.11.27 21:00
    최시영 wrote:

    > 화면의 어떤 좌표(x,y)에 클릭을 하고 싶으면 어떻게 하죠 ㅠ.ㅠ;;;;

    >

    > 아직은 모르는것이 많은 초보입니다....잘 부탁드립니다.



    // 아래 예제는 Button2를 클릭하면 Button1을 클릭하는 동작을 합니다



    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls;



    type

    TForm1 = class(TForm)

    Button1: TButton;

    Button2: TButton;

    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

    ShowMessage('Button1 클릭');

    end;



    procedure TForm1.Button2Click(Sender: TObject);

    var

    P: TPoint;

    begin

    // form 기준의 좌표를 desktop 기준의 좌표로 계산

    P.X := Button1.Left;

    P.Y := Button1.Top;

    P := Self.ClientToScreen(P);



    // 마우스 커서를 Button1의 중앙으로 이동시킨다

    SetCursorPos(P.X, P.Y);



    // Mouse 왼쪽 버튼의 클릭(Down, up) 발생

    mouse_event(MOUSEEVENTF_LEFTDOWN, 0,0,0,0);

    mouse_event(MOUSEEVENTF_LEFTUP, 0,0,0,0);

    end;



    end.





  • Profile
    seoulite 2000.03.15 04:54
    여기 게시판에서 무대뽀로 열심히 배우고 있습니다



    짱 좋은 모임입니다...



    단순히 컨트롤에 클릭 메시지를 주는 거 말구요...

    외부 프로그램의

    원하는 좌표를 클릭하되 포인터가 이동하지 않고 하는 방법말이예요

    설명이 맞나모르겠네요.(~_~)



    이동하지 않고 클릭효과를 주고 싶을땐 어떻게 하는지

    가르쳐주세요...저도 잘 부탁 드립니다...고수님들...



    김영대 wrote:

    > 최시영 wrote:

    > > 화면의 어떤 좌표(x,y)에 클릭을 하고 싶으면 어떻게 하죠 ㅠ.ㅠ;;;;

    > >

    > > 아직은 모르는것이 많은 초보입니다....잘 부탁드립니다.

    >

    > // 아래 예제는 Button2를 클릭하면 Button1을 클릭하는 동작을 합니다

    >

    > unit Unit1;

    >

    > interface

    >

    > uses

    > Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    > StdCtrls;

    >

    > type

    > TForm1 = class(TForm)

    > Button1: TButton;

    > Button2: TButton;

    > 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

    > ShowMessage('Button1 클릭');

    > end;

    >

    > procedure TForm1.Button2Click(Sender: TObject);

    > var

    > P: TPoint;

    > begin

    > // form 기준의 좌표를 desktop 기준의 좌표로 계산

    > P.X := Button1.Left;

    > P.Y := Button1.Top;

    > P := Self.ClientToScreen(P);

    >

    > // 마우스 커서를 Button1의 중앙으로 이동시킨다

    > SetCursorPos(P.X, P.Y);

    >

    > // Mouse 왼쪽 버튼의 클릭(Down, up) 발생

    > mouse_event(MOUSEEVENTF_LEFTDOWN, 0,0,0,0);

    > mouse_event(MOUSEEVENTF_LEFTUP, 0,0,0,0);

    > end;

    >

    > end.

    >

    >