作者 主題: C 鍵盤控制  (閱讀 5473 次)

0 會員 與 1 訪客 正在閱讀本文。

kinghun117

  • 可愛的小學生
  • *
  • 文章數: 15
    • 檢視個人資料
C 鍵盤控制
« 於: 2009-10-09 15:36 »
請教各位高手大大

要如何用 C 來寫一個控制 鍵盤 如

按鍵1 按一下
延遲1秒放開
按鍵2 按一下
延遲1秒放開
按鍵3 按一下
延遲1秒放開
按鍵4 按一下
延遲1秒放開

無限回圈  按 Esc 鍵離開  謝謝 ^^~

下面有C++ 範例但看不太懂 要如何用C來寫 ˇˇ"

#include <windows.h>
#include <cstdio>
#include <iostream>
using namespace std;

BOOL CALLBACK SearchProc(HWND hWnd, LPARAM lParam)
{
    int nLen = GetWindowTextLength(hWnd);
    LPSTR lpszTitle = new CHAR[nLen + 1];
    GetWindowText(hWnd, lpszTitle, nLen);
    //cout << "Looking at window: " << lpszTitle << endl;
    if(strstr(lpszTitle, "Mozilla")){
       SetForegroundWindow(hWnd);
       keybd_event(VK_LCONTROL, 0x1d,0 , 0); //ctrl Press
       keybd_event(VkKeyScan('T'), 0x14,0 , 0); // 'T' Press  
       keybd_event(VkKeyScan('T'), 0x94, KEYEVENTF_KEYUP, 0); // 'T' Release  
       keybd_event(VK_LCONTROL, 0x9d, KEYEVENTF_KEYUP, 0); // Ctrl Release  

       cout << "Found window: " << lpszTitle << endl;
       Sleep(1000);
       delete lpszTitle;
       return TRUE;
    }
       delete lpszTitle;
       return TRUE;
}  

int main () {

// keybd_event(VK_MENU,0xb8,0 , 0); //Alt Press  
// keybd_event(VK_TAB,0x8f,0 , 0); // Tab Press  
// keybd_event(VK_TAB,0x8f, KEYEVENTF_KEYUP,0); // Tab Release  
// keybd_event(VK_MENU,0xb8,KEYEVENTF_KEYUP,0); // Alt Release  
//
// Sleep(10000); //wait 10 seconds
//
// keybd_event(VK_MENU,0xb8,0 , 0); //Alt Press  
// keybd_event(VK_TAB,0x8f,0 , 0); // Tab Press  
// keybd_event(VK_TAB,0x8f, KEYEVENTF_KEYUP,0); // Tab Release  
// keybd_event(VK_MENU,0xb8,KEYEVENTF_KEYUP,0); // Alt Release  
//
// char c = getchar();
// cout << "Char was: " << c << endl;

    char con[120];
    GetConsoleTitle(con,sizeof(con));
    HWND hwndConsole = FindWindow(NULL,con);
    EnumWindows(SearchProc, NULL);
    Sleep(1000);
    SetForegroundWindow(hwndConsole);
    cout << "press enter to exit program..." << endl;
    getchar();
    return 0;
}



« 上次編輯: 2009-10-26 16:21 由 kinghun117 »