【问题标题】:D 1.0 (Tango) Move mouse; simulate keyboard presses etcD 1.0 (Tango) 移动鼠标;模拟键盘按键等
【发布时间】:2009-10-11 22:24:06
【问题描述】:

嘿,我正在使用D 1.041 with 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

对此有什么帮助吗?我还在用version

【问题讨论】:

  • 这不是 D 特定的问题。尝试寻找基于 C 的解决方案;移植应该很简单。
  • 请不要这么快下结论。正如您在下面看到的,这是一个 Tango 特有的问题,因此它也是 D 特有的。

标签: keyboard cursor d tango


【解决方案1】:

这是 Tango 中的一个错误。

Tango 将 mouse_event 声明为:

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

MSDN 表明它需要 5 个参数,而不是 4 个。

对于认真的 Win32 开发,您应该看看 Windows API bindings 项目。

【讨论】:

    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    相关资源
    最近更新 更多