用代碼控制鼠標鍵盤(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來捕獲記錄鼠標位置的,可惜技術不夠,沒搞成。

&中間有次點擊時間間隔太小了,導致鼠標亂跳,關不掉程序,只能呵呵噠重啟了(也許可以惡作劇一下),囧


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM