用代码控制鼠标键盘(C#语言)
生活随笔
收集整理的這篇文章主要介紹了
用代码控制鼠标键盘(C#语言)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前些時間想做一個鼠標點擊器,用到了這些知識。
下面整理記錄一下。
ps.感謝各位大神
下面直接上代碼
1.鼠標的控制
class MouseMove
{
#region MouseEvent
[System.Runtime.InteropServices.DllImport("user32")]
private static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
//移動鼠標
const int MOUSEEVENTF_MOVE = 0x0001;
//模擬鼠標左鍵按下
const int MOUSEEVENTF_LEFTDOWN = 0x0002;
//模擬鼠標左鍵抬起
const int MOUSEEVENTF_LEFTUP = 0x0004;
//模擬鼠標右鍵按下
const int MOUSEEVENTF_RIGHTDOWN = 0x0008;
//模擬鼠標右鍵抬起
const int MOUSEEVENTF_RIGHTUP = 0x0010;
//模擬鼠標中鍵按下
const int MOUSEEVENTF_MIDDLEDOWN = 0x0020;
//模擬鼠標中鍵抬起
const int MOUSEEVENTF_MIDDLEUP = 0x0040;
//標示是否采用絕對坐標
const int MOUSEEVENTF_ABSOLUTE = 0x8000;
#endregion
//x,y是鼠標在屏幕的位置,屏幕左上角為0,0點
public void MouseMoveAndClick(int _x, int _y)
{
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, _x * 65535 / screenWH.x, _y * 65535 / screenWH.y, 0, 0);
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
}
}
ps.其他的單擊雙擊什么的可以自己定義
2.鍵盤的控制
class KeyBordClick
{
[DllImport("user32.dll", EntryPoint = "keybd_event", SetLastError = true)]
private static extern void keybd_event(Keys bVk, byte bScan, uint dwFlags, uint dwExtraInfo);
const int KEYEVENTF_KEYUP = 0x02;
const int KEYEVENTF_KEYDOWN = 0x00;
//相當于按下ctrl+v,然后回車
private void KeyBordPaste()
{
keybd_event(Keys.ControlKey, 0, KEYEVENTF_KEYDOWN, 0);
keybd_event(Keys.V, 0, 0, 0);
keybd_event(Keys.ControlKey, 0, KEYEVENTF_KEYUP, 0);
keybd_event(Keys.Enter, 0, 0, 0);
}
}
3.剪切板
使用Clipboard類
Clipboard. SetDataObject("HELLO WORLD!!!", true);
ps.
本來想用hook來捕獲記錄鼠標位置的,可惜技術不夠,沒搞成。
&中間有次點擊時間間隔太小了,導致鼠標亂跳,關不掉程序,只能呵呵噠重啟了(也許可以惡作劇一下),囧
總結
以上是生活随笔為你收集整理的用代码控制鼠标键盘(C#语言)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机操作系统中的硬件资源和软件资源都包
- 下一篇: java银行叫号模拟系统_Java 模拟