마우스의 좌표를 저장하고 실행하는 매크로는 C언어로 작성되어 있습니다.
메이플 PC방 접속 이벤트를 해야 하는데 5시간 동안 앉아 있기 싫어서 만들었습니다.
실제로 해봤는데 귀찮아서 안 하려고요.
F1 마우스 위치 저장
F2 마지막으로 저장된 마우스 위치 삭제
F3 리셋 빈 위치
F5 실행
F10 종료
#include <stdio.h>
#include <windows.h>
void home();
void reset_arr();
int is_empty();
int x(100);
int y(100);
int i=-1;
int main(void){
POINT pt;
reset_arr();
int j,n;
home();
while (1) {
SHORT KeyState_F1 = GetKeyState(VK_F1);//마우스 위치 저장
SHORT KeyState_F2 = GetKeyState(VK_F2);//마지막 좌표 삭제
SHORT KeyState_F3 = GetKeyState(VK_F3);//좌표 초기화
SHORT KeyState_F5 = GetKeyState(VK_F5);//저장 실행
SHORT KeyState_F10 = GetKeyState(VK_F10);
if (KeyState_F1 & 0x8000) {
Sleep(300);
i++;
GetCursorPos(&pt);
x(i)=pt.x;
y(i)=pt.y;
printf("%d번째 좌표 : %d %d\n",i+1,x(i),y(i));
fflush(stdout);
} else if (KeyState_F2 & 0x8000){//좌표 삭제
if(is_empty()!
=FALSE){
Sleep(300);
x(i)=0;
y(i)=0;
printf("%d번째 좌표 삭제\n",i+1);
i--;
}
} else if (KeyState_F3 & 0x8000){//좌표 초기화
if(is_empty()!
=FALSE){
Sleep(300);
reset_arr();
i=-1;
printf("초기화가 됐습니다\n");
}
} else if (KeyState_F5 & 0x8000){ // 저장 실행
if(is_empty()!
=FALSE){
Sleep(300);
n=0;
for(j=i;n<=j;n++){
SetCursorPos(x(n),y(n));
Sleep(100);
mouse_event(MOUSEEVENTF_LEFTDOWN,x(n),y(n),0,0);
mouse_event(MOUSEEVENTF_LEFTUP,x(n),y(n),0,0);
printf("%d번째 좌표 실행 %d %d\n",n+1,x(n),y(n));
Sleep(100);
}
}
} else if(KeyState_F10 & 0x8000){
break;
}
Sleep(200); // Sleep for 100ms to prevent high CPU usage
}
return 0;
}
void home(){
printf("*******************\n");
printf("F1 : 마우스 좌표 저장\n");
printf("F2 : 마우스 좌표 삭제\n");
printf("F3 : 배열 초기화\n");
printf("F5 : 실행\n");
printf("F10 : 종료\n");
printf("*******************\n");
}
void reset_arr(){
memset(x,0,sizeof(x));
memset(y,0,sizeof(y));
}
int is_empty(){
if(i<0){
printf("####오류가 발생했습니다 배열이 비어있습니다.
####\n");
return FALSE;
}
return TRUE;
}