C#에서 PostMessage를 이용해 비활성 매크로를 구현 했었는데,
마우스 클릭(0x201, 0x202)과 이동 (0x200)으로 구현하니깐 작동을 안하더군요.
찾아보니 PostMessage로 드래그를 구현할 때는 클릭 이벤트만 써야 되더군요
C#에서 구현한 예제입니다.
int lParam = (startY * 65536) + startX;
PostMessage(hwnd, 0x201, 1, lParam);
lParam = (endY * 65536) + endX;
PostMessage(hwnd, 0x201, 1, lParam);
PostMessage(hwnd, 0x202, 0, lParam);
이를 오토핫키로 구현한다면
lparam:=(startY * 65536)+startX
PostMessage, 0x201, 1, %lparam%, ......
lparam:=(endY * 65536)+endX
PostMessage, 0x201, 1, %lparam%, ......
PostMessage, 0x202, 0, %lparam%, ......
오토핫키 코드 짜본지가 오래되서 이게 맞는지? 잘 모르겠습니다. 뒤의 .... 파라메터들은 생략했습니다.
대략 코드 설명을 하자면
드래그를 시작할 부분의 좌표(startX, startY)에서 마우스 왼쪽버튼을 누르는 이벤트를 보내고,
드래그를 마칠 부분의 좌표(endX, endY)에서 다시 클릭 이벤트를 보냅니다.
그 뒤 마칠 부분의 좌표에서 마우스 버튼 Up을 시키면 드래깅이 됩니다.
씨샾으로도 오토핫키 dll파일을 읽어들어서 코드실행이 가능한가요!?