2017-03-10 5 views
0

최근에 저는 (Florensia라고하는) MMO 게임용 봇을 만들려고했습니다. 게임의 여러 위치를 클릭해야합니다. 내 문제는 cursour를 위치로 설정 만하지만 클릭이 제대로되지 않는다는 것입니다. 바탕 화면이나 다른 프로그램에서이 프로그램을 실행하면 제대로 클릭됩니다. 물론 게임은 윈도우 모드입니다. 이미 Mouseup과 Mousedown간에 지연을 설정하려고했습니다. 또한 게임이 전경 창으로 설정되어 클릭이 작동하지 않습니다.C# 게임에서 마우스 클릭 시뮬레이션이 작동하지 않습니다.

답변을 기다리십시오! :)

+0

질문을 편집하고 사용중인 코드를 추가하여 문제가있는 곳을 정확히 표시하십시오. –

+0

나는 지금 아래의 코드를 사용했다. (여전히 작동하지 않습니다). – luck2y

답변

0

이 예제에서와 같이 WinApi 기능을 사용해보십시오.

[DllImport("user32.dll")] 
static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam); 
[DllImport("user32.dll")] 
static extern bool SetForegroundWindow(IntPtr hWnd); 

static void Main(string[] args) 
{ 
    const int WM_LBUTTONDOWN = 0x0201; 
    const int WM_LBUTTONUP = 0x0202; 
    const int MK_LBUTTON = 0x0001; 

    uint x = 100; 
    uint y = 100; 

    IntPtr handle = new IntPtr(0x00090996); //Your window handle 
    SetForegroundWindow(handle); 
    Thread.Sleep(300); 
    SendMessage(handle, WM_LBUTTONDOWN, new IntPtr(MK_LBUTTON), new IntPtr(y << 16 | x)); 
    Thread.Sleep(300); 
    SendMessage(handle, WM_LBUTTONUP, new IntPtr(0), new IntPtr(y << 16 | x)); 
} 
+0

방금 ​​시도했습니다. 그것은 모든 윈도우에서 다시 작동합니다. 테스트했지만 게임에서는 테스트하지 않았습니다. 문제에 대한 아이디어 나 제안이 있습니까? – luck2y

+0

SendMessage 대신 PostMessage를 호출 해보십시오. 어쩌면 잘못된 창 핸들을 사용하고 클릭하려는 영역이 일부 자식 창 내부에 있습니까? 그것은 내가 생각할 수있는 전부입니다. –

+0

PostMessage를 사용하여 작동하지 않았지만 SetForegroundWindow (hWnd)를 사용할 때마다 창이 전경으로 설정 되었기 때문에 잘못된 창 핸들 일 수 없습니다. 내가 잘못? – luck2y

관련 문제