반응형
이 함수를 쓰고 싶지만.. 어떠한 발상이 떠오르지 않는다는것이 흠이다.
굳이 쓰자면 오토마우스클릭 같은 그런 프로그램을 제작할 수 있는 기반이 되는 소스라 보면 되겠다.
또한 이것을 이용하여 매크로도 가능하지 않을까 조심스럽게 생각해본다.. (요즘 pc보안이 워낙 좋아서 기본적 매크로 정도만)
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #include <windows.h> #include<conio.h> #include <stdio.h> int main(void) { int i = 0 ; int k = 0; while(1) { if(i >= 0 && i < 50) { SetCursorPos(i, i); i++; } else if(i >= 50 && i < 100) { k = i - 1; SetCursorPos(100-k, 100-k); i++; } else { i = 0; } if(kbhit() != 0) { if(getch() == 27) { return 0; } } } //printf("100, 100으로 마우스를 클릭한다."); // Sleep(1000); // mouse_event(MOUSEEVENTF_LEFTDOWN, 100, 100, 0, 0); // mouse_event(MOUSEEVENTF_LEFTUP, 100, 100, 0, 0); // Sleep(10); // mouse_event(MOUSEEVENTF_LEFTDOWN, 100, 100, 0, 0); // mouse_event(MOUSEEVENTF_LEFTUP, 100, 100, 0, 0); return 0; } | Crocus |
이 소스코드를 실행 시키면
모니터 좌표점을 기준으로 (지금부터 마우스가 Console에서 놀지 않음) (0,0) 에서 (50,50)까지 반복움직임을 하는 것을 볼 수 있을 것이다.
물론 esc를 누르면 종료되도록 작성해 두었다.
아래 소스코드 부분 중
1 2 3 4 5 6 7 8 | //printf("100, 100으로 마우스를 클릭한다."); // Sleep(1000); // mouse_event(MOUSEEVENTF_LEFTDOWN, 100, 100, 0, 0); // mouse_event(MOUSEEVENTF_LEFTUP, 100, 100, 0, 0); // Sleep(10); // mouse_event(MOUSEEVENTF_LEFTDOWN, 100, 100, 0, 0); // mouse_event(MOUSEEVENTF_LEFTUP, 100, 100, 0, 0); | Crocus |
이 부분이 있는데 이것이 클릭을 하도록 만드는 함수이다.
영어를 읽어보면 아시다시피 leftdown은 누른상태 leftup은 누르지 않은 상태를 의미한다.
보통 파일을 실행할 때 두번 클릭을 하는데 이때 down -> up -> down -> up 임을 잊지말자. (필자는 down -> up 만해서 왜안되지 고민도 함.. ' ';;)
반응형
'Basic > C++' 카테고리의 다른 글
MIDI 함수를 이용한 Console에서 피아노 연주 - (2) 학교종이 (7) | 2014.01.31 |
---|---|
MIDI 함수를 이용한 Console에서 피아노 연주 - (1) 기본 소스코드 (11) | 2014.01.31 |
bgm 및 효과음 동시구현 (26) | 2014.01.15 |
Console 2차원 그래픽 구현 - 4. 그래픽 구현 및 응용 (0) | 2014.01.14 |
Console 2차원 그래픽 구현 - 3. Console 그림판 소스코드 (2) | 2014.01.14 |