方法一:需要呼叫win32api,winform、wpf通用
[dllimport("user32.dll")]
public static extern bool getcursorpos(out point lppoint);
[structlayout(layoutkind.sequential)]
public struct point
}方法二:通過調程式設計客棧用win32 api設定滑鼠位置,實現移到指定位置,模仿並實現滑鼠點選動作,並回到滑鼠原先位置的方法,**如下:
//獲取螢幕
int width = (int)systemparameters.primaryscreenwidth;//得到螢幕整體寬度
int height = (int)systemparam得到螢幕整體高度
//獲取滑鼠初始位置,相對螢幕的絕對位置
system.drawing.point p = new system.drawing.point();
www.cppcns.com
apihelper.getcursorpos(out p);
if (width != 0) p.x = 65535 *www.cppcns.com p.x / width;
if (height != 0) p.y = 65535 * p.y / height;
//設定移動的位置座標
int dy = 100;
int dx = 100;
dx = (int)(dx * 65535 / width);
dy = (int)(dy * 65535 / height);
//移到指定位置
apihelper.mouse_event((int)(mouseeventflag.mouseeventf_move | mouseeventflag.mouseeventf_absolute), dx, dy, 0, intptr.zero);//移動到需要點選的位置
//完成一次點選
apihelper.mouse_event((int)(mouseeventflag.mouseeventf_leftdown), 0, 0, 0, intptr.zero);
apihelper.mouse_event((int)(mouseeventflag.mouseeventf_leftup), 0, 0, 0, intptr.zero);//
//單擊可以寫為
apihelper.mouse_event((int)(mouseeventflag.mouseeventf_leftdown | mouseeventflag.mouseeventf_leftup), 0, 0, 0, intptr.zero);
//雙擊則再重複單擊方法
//回到初始位置
apihelper.mouse_event((int)(mouseeventflag.mouseeventf_move | mouseeventflag.mouseeventf_absolute), p.x, p.y, 0, intptr.zero);//移動到需要點選的位置
**中apihelper為作者封裝的win32 api方法,讀者可以通過api精靈等軟體查詢api函式,自行實現封裝。
本文標題: c#使用win32api實現獲取游標位置
本文位址:
win32彙編使用win32 api實現字串拷貝
字串拷貝,呼叫win32的lstrcpy函式 拷貝了以後用訊息框顯示一下 386 model flat,stdcall option casemap none include s masm32 include windows.inc include s masm32 include user32.i...
win 32Api獲取系統記憶體函式
windows程式設計中 獲取系統記憶體資訊有2個api,分別是globalmemorystatus和globalmemorystatu globalmemorystatus函式可以在c語言咧直接呼叫,但是globalmemorystatu 卻不可以直接呼叫,因為globalmemorystatu ...
用Win32 API實現序列通訊
2003 7 9 7 56 18 pcvc.wangxi 閱讀次數 30453 串列埠是常用的計算機與外部序列裝置之間的資料傳輸通道,由於序列通訊方便 易行,所以應用廣泛。我們可以利用windows api 提供的通訊函式編寫出高可移植性的 序列通訊程式。在win16中,可以利用open m clo...