C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[38019] Re:mouse_event() 사용시 딜레이 문제
유영인 Cuperido [cuperido] 2813 읽음    2004-11-13 05:14
SetCursorPos 로 설정하신 뒤,

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

이런식으로 클릭해 보시기 바랍니다.
Sleep 전에, Application->ProcessMessages()도 넣어주시면 실시간으로 움직일 수 있습니다.

그리고, 버튼을 클릭할 때는, 버튼을 직접 클릭하는 것보다,
버튼의 핸들을 구해서 SendMessage 등으로 클릭되었다는 메시지를 보내 주는 것이
훨씬 좋은 방법이라 생각됩니다.


cuperido

아르스 님이 쓰신 글 :
: 버튼이 3개 있습니다
:
: 버튼1을 누르면
: mouse_event()를 이용해서
:
: 버튼2를 자동으로 누르게되고 그 후에 버튼 3을 누르게 되는 프로그램을 만들고 있습니다
: void __fastcall TFrm_Main::Btn_WriteClick(TObject *Sender)
: {
:     //버튼2로 이동한 후 누른다
:      mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 26000, 21500, 0, 0);
:      mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN, 26000, 21500, 0, 0);
:      mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTUP, 26000, 21500, 0, 0);
:
:     //버튼3으로 이동한 후 누른다
:      mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 26000, 21500, 0, 0);
:      mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTDOWN, 26000, 21500, 0, 0);
:      mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTUP, 26000, 21500, 0, 0);
: }
:
: 그런데 문제가
: 버튼2를 누르고 버튼 3을 눌러야 하는데
: 버튼2를 너무 번개같이(?) 누르고 3을 눌러서 그런지
: 버튼2가 눌러진 효과가 나지 않습니다.
:
: ::Sleep(3000) 을 버튼 2의
: mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_LEFTUP, 26000, 21500, 0, 0);
: 밑에 써줘도 마찬가지더군요
: (::Sleep(3000)을 쓰면 상식적으로 버튼2 누르고 난후 3초 대기했다가 버튼3을 눌러야 되는데
: 동작은 버튼2 누르기 전에 3초 대기하더라구요...이부분도 이상합니다)
:
: 어떻게 하면 버튼 2를 정상적으로 누르고 버튼3을 누르게 할 수 있을까요??

+ -

관련 글 리스트
37988 mouse_event() 사용시 딜레이 문제 아르스 1817 2004/11/11
38019     Re:mouse_event() 사용시 딜레이 문제 유영인 Cuperido 2813 2004/11/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.