D 1.0 (Tango) Переместить мышь; имитировать нажатия клавиш и т. д. - PullRequest
3 голосов
/ 05 октября 2009

Эй, я использую D 1.041 с Tango 0.99.8 , и мне было интересно, как бы я мог перемещать мышь и имитировать нажатия клавиш и получать информацию с экрана, например, цвет конкретный пиксель по определенной координате. Я использую Windows.

Любая помощь будет принята с благодарностью. Я хочу запрограммировать библиотеку на основе классов с функциональностью, которая напоминает AutoIt. Например:

mouse.move(100, 200);
mouse.click(2); // 2 = Middle Mouse Click
keyboard.type('abc');

import tango.sys.win32.UserGdi;

class Mouse{
    alias SetCursorPos set_pos;
    alias GetCursorPos get_pos;
    void left_click(){
        mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0);
        mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0);
    }
    void right_click(){
        mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0);
        mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0);
    }
}

Этот код выдает мне следующую ошибку:

Ошибка 42: символ не определен _mouse_event @ 16 --- уровень ошибки 1

Есть какая-нибудь помощь по этому поводу? Я все еще использую версию .

1 Ответ

2 голосов
/ 09 октября 2009

Это ошибка в танго.

Танго объявляет mouse_event как:

void mouse_event(DWORD, DWORD, DWORD, DWORD);

, в то время как MSDN показывает, что требуется 5 параметров, а не 4.

Для серьезной разработки Win32 вы должны взглянуть на привязки Windows API проект.

...