如何模擬滑鼠的拖拽行為. delphi / windows sdk/api
我想用滑鼠模擬拖拽某一**的列行為,就是把第一列拖到第五列尋樣.
計算好目標視窗的座標,然後把該視窗置為前台,再用類似下面這樣的**試試:
mouse_event(mouseeventf_leftdown,0,0,0,0);
mouse_event(mouseeventf_leftup,0,0,0,0);
樓上的方法偶試過,但一直沒有成功.
測試情況是wm_lbuttondown, wm_mousemove,wm_lbuttonup訊息都捕獲了
(座標是沒有問題的.)
就是沒有實現拖動列的效果.
偶是在delphi下試的.
function mousetoscreen(mvertical: boolean; mmouse: integer): integer;
begin
case mvertical of
false: result := round(mmouse * (maxword / screen.width));
else result := round(mmouse * (maxword / screen.height));
end;
end;
procedure tform1.button1click(sender: tobject);
var
vpoint: tpoint;
begin
vpoint := panel1.clienttoscreen(point(1, 1));
mouse_event(mouseeventf_absolute or mouseeventf_move,
mousetoscreen(false, vpoint.x), mousetoscreen(true, vpoint.y), 0, 0);
mouse_event(mouseeventf_absolute or mouseeventf_leftdown,
mousetoscreen(false, vpoint.x), mousetoscreen(true, vpoint.y), 0, 0);
dec(vpoint.x, 200);
dec(vpoint.y, 200);
mouse_event(mouseeventf_absolute or mouseeventf_move,
mousetoscreen(false, vpoint.x), mousetoscreen(true, vpoint.y), 0, 0);
mouse_event(mouseeventf_absolute or mouseeventf_leftup,
mousetoscreen(false, vpoint.x), mousetoscreen(true, vpoint.y), 0, 0);
end;
procedure tform1.formcreate(sender: tobject);
begin
panel1.dragkind := dkdock;
panel1.dragmode := dmautomatic;
end;
to 樓上:
非常感謝!
可是對tstringgrid列的拖動還是不行.
如何模擬滑鼠的拖拽行為
如何模擬滑鼠的拖拽行為.delphi windows sdk api 我想用滑鼠模擬拖拽某一 的列行為,就是把第一列拖到第五列尋樣.計算好目標視窗的座標,然後把該視窗置為前台,再用類似下面這樣的 試試 mouse event mouseeventf leftdown,0,0,0,0 mouse ev...
selenium 模擬滑鼠拖拽
1 從乙個元素拖拽到另乙個元素 from selenium import webdriver from selenium.webdriver import actionchains import time browser webdriver.chrome try browser.get browse...
模擬滑鼠的單雙擊
實現方法 先用setcursorpos將滑鼠移動到某一特定位置。如果要模擬滑鼠單擊,則呼叫mouse event函式兩 次分別傳送滑鼠被按下的訊息和滑鼠被彈起的訊息 如果要模擬滑鼠雙擊,則重 送一次滑鼠被按下 和彈起的訊息。程式 2 給對話方塊增加 雙擊標題欄 按鈕,其響應函式為 void csim...