일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- VIM
- sudo
- port
- docker registry
- docker
- 우분투
- 도커
- ssh
- DevOps
- RUBY
- 드라이버
- AWS
- opsworks
- ubuntu
- VMware
- Linux
- 루비
- driver
- 패키지
- docker container
- golang
- Openswan
- ssh command
- QT
- Chef
- docker-compose
- 리눅스
- 방화벽체크
- window size
- VPN
- Today
- Total
구리의 창고
다른 모니터로 마우스 좌표 보내기 (WDK) 본문
모니터 좌표는 주모니터를 기준으로 한다.
다음과 같이 모니터가 4개 설치됐다고 가정하자 (1번모니터가 주모니터이다)
주모니터(1번) 왼쪽 끝은 0,0 좌표를 가진다.
그리고 2번모니터의 좌표는 1번모니터의 가로길이부터 시작한다.
만약 주모니터의 왼쪽이나 위쪽에 있다면 좌표는 마이너스 값을 가지게된다.
각 모니터의 좌표를 얻어온 후, 드라이버 단에서 처리를 해줘야한다.
mouclass에 mouse event 를 보내 줄 때, x y 값은 가로세로 최대 0xFFFF 0xFFFF 값을 가진다.
설명을 쉽게 하기 위해 소스를 예로 들겠다.
typedef struct{LONG Top;LONG Bottom;LONG Left;LONG Right;} RECT;...중략...RECT monPrimaryInfo;RECT monInfo;..모니터 좌표 저장..x = 0xFFFF * monInfo.Left / (monPrimaryInfo.Right - monPrimaryInfo.Left) ;y = 0xFFFF * monInfo.Top / (monPrimaryInfo.Bottom - monPrimaryInfo.Top) ;
monInfo 에 마우스 좌표를 보내고 싶은 모니터 정보, monPrimaryInfo에 주모니터 정보가 저장 돼 있다.
위 같은 공식으로 적당히 계산을 해서 값을 넣어주면 된다.
출처: 나
'Window Driver' 카테고리의 다른 글
VisualDDK - 비주얼스튜디오에서 드라이버 디버깅하기 (0) | 2010.11.12 |
---|---|
커널모드에서 타이머 사용하기 (0) | 2010.08.11 |
키보드 후킹해서 키로그 만들기 (0) | 2010.03.16 |
레지스트리 SERVICE에 있는 변수 설명 (0) | 2010.03.15 |
키보드, 마우스 디바이스 드라이버 동적 로딩하기 (0) | 2010.03.14 |
Comments