2009-10-05 60 views
3

嘿,我使用D 1.041 with Tango 0.99.8,並想知道我將如何去移動鼠標和模擬鍵盤按下,並從屏幕上獲取信息,例如特定座標上的特定像素的顏色。我正在使用Windows。D 1.0(探戈)移動鼠標;模擬鍵盤按下等

任何幫助將不勝感激。我想用類似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); 
    } 
} 

此代碼給我下面的錯誤:

Error 42: Symbol Undefined [email protected] --- errorlevel 1

上任何幫助嗎?我仍在使用version

+1

這不是一個D特定的問題。嘗試尋找基於C的解決方案;移植應該是直截了當的。 – FeepingCreature

+0

請不要急於下結論。正如你在下面看到的,這是一個Tango特定的問題,因此它也是D專用的。 –

回答

2

這是探戈中的一個bug。

探戈聲明mouse_event爲:

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

MSDN表明,需要5個參數,而不是4

對於嚴重的Win32開發,你應該看一看的Windows API bindings項目。