일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 우분투
- DevOps
- golang
- 루비
- Chef
- docker
- 패키지
- RUBY
- 리눅스
- ubuntu
- Openswan
- 도커
- docker registry
- 드라이버
- ssh
- docker-compose
- port
- ssh command
- 방화벽체크
- VMware
- driver
- sudo
- docker container
- VPN
- opsworks
- window size
- VIM
- Linux
- QT
- AWS
- Today
- Total
구리의 창고
마우스 이벤트 발생시키기 - SendInput() 본문
SetCursorPos()를 사용해서 마우스 위치를 지정 할 수 있다.
하지만, 클릭이나 드래그 같은 기능은 구현 할 수 없다.
그래서 SendInput()이란 함수를 이용하면 된다.
헤더파일은 windows.h 이다.
아래는 마우스 왼쪽버튼을 클릭 한 후, 다시 복구시키는 소스이다.
INPUT an_input;
an_input.type = INPUT_MOUSE;
an_input.mi.dx = 0;
an_input.mi.dy = 0;
an_input.mi.mouseData = 0;
an_input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
an_input.mi.time = 0;
an_input.mi.dwExtraInfo = 0;
SendInput(1, &an_input, sizeof an_input);
Sleep(1);
an_input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
SendInput(1, &an_input, sizeof an_input);
여기에 들어가는 마우스 이벤트는 msdn에 정의되있다.
http://msdn.microsoft.com/en-us/library/ms646260(VS.85).aspx
VOID mouse_event(
DWORD dwFlags,
DWORD dx,
DWORD dy,
DWORD dwData,
ULONG_PTR dwExtraInfo
);
dwFlags
MOUSEEVENTF_ABSOLUTE
MOUSEEVENTF_MOVE
MOUSEEVENTF_LEFTDOWN
MOUSEEVENTF_LEFTUP
MOUSEEVENTF_RIGHTDOWN
MOUSEEVENTF_RIGHTUP
MOUSEEVENTF_MIDDLEDOWN
MOUSEEVENTF_MIDDLEUP
MOUSEEVENTF_WHEEL //dwData 에 얼만큼 휠을 굴렸는지 알 수 있다.
MOUSEEVENTF_XDOWN
MOUSEEVENTF_XUP
'Programming' 카테고리의 다른 글
CString 을 double로 변환하기 (0) | 2010.05.12 |
---|---|
class 재정의 문제 (0) | 2010.05.01 |
vs2008 런타임 포함시키기 (0) | 2010.03.26 |
멀티모니터 정보 구해오기 (0) | 2010.03.25 |
타이머 대용으로 간단하게 스레드 사용하기 (0) | 2010.03.04 |
Comments