找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5814|回復: 0
打印 上一主題 下一主題
收起左側

用VC開發(fā)一個模擬鍵盤按鍵信息的軟件

[復制鏈接]
跳轉到指定樓層
樓主
ID:91350 發(fā)表于 2015-10-29 22:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
        是這樣的,只要我打開軟件,就會發(fā)送一個按鍵上的信息,比如我按下鍵盤上的K鍵 ,那么打開這個軟件,就會不斷的按下K,就是軟件模擬按下按鍵。

        vc模擬鍵盤輸入
keybd_event(VK_LWIN, 0, 0 ,0);
    keybd_event('M', 0, 0 ,0);
    keybd_event('M', 0, KEYEVENTF_KEYUP ,0);
    keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP,0);
   
    方法1:
HWND hwnd=::FindWindow(0,"文檔1"); //假設你要找的窗口標題為“文檔1”
CWnd::FromHandle(hwnd)->SetForegroundWindow();
::PostMessage(hwnd,WM_KEYDOWN, VK_ESCAPE, 0L); //發(fā)送ESC按下的鍵盤消息

       
方法2:這里以向記事本程序發(fā)送Ctrl+s按鍵消息為例:
CWnd *pWnd = FindWindow("Notepad", NULL);
if (pWnd->GetSafeHwnd())
{
pWnd->ShowWindow(SW_NORMAL);
pWnd->SetForegroundWindow();
keybd_event(VK_CONTROL, 0, 0, 0);
keybd_event('S', 0, 0, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
keybd_event('S', 0, KEYEVENTF_KEYUP, 0);
}

        對于其他程序,關鍵就是要找到就收消息的窗口句柄。

       
::mouse_event(1) 模擬鼠標動作API函數(shù)mouse_event,它可以實現(xiàn)模擬鼠標按下和放開等動作。
    VOID mouse_event(
      DWORD dwFlags, // 鼠標動作標識。
      DWORD dx, // 鼠標水平方向位置。
      DWORD dy, // 鼠標垂直方向位置。
      DWORD dwData, // 鼠標輪子轉動的數(shù)量。
      DWORD dwExtraInfo // 一個關聯(lián)鼠標動作輔加信息。
    );
其中,dwFlags表示了各種各樣的鼠標動作和點擊活動,它的常用取值如下:
   MOUSEEVENTF_MOVE 表示模擬鼠標移動事件。
   MOUSEEVENTF_LEFTDOWN 表示模擬按下鼠標左鍵。
   MOUSEEVENTF_LEFTUP 表示模擬放開鼠標左鍵。
   MOUSEEVENTF_RIGHTDOWN 表示模擬按下鼠標右鍵。
   MOUSEEVENTF_RIGHTUP 表示模擬放開鼠標右鍵。
   MOUSEEVENTF_MIDDLEDOWN 表示模擬按下鼠標中鍵。
   MOUSEEVENTF_MIDDLEUP 表示模擬放開鼠標中鍵。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表