線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1288
推到 Plurk!
推到 Facebook!

送 keybd_event 到console windows似乎有問題

尚未結案
wildmonkey
一般會員


發表:1
回覆:1
積分:0
註冊:2003-04-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-09-03 11:03:39 IP:61.222.xxx.xxx 未訂閱
各位先進您好,小弟最近在寫keybd_event的時候發現了一個問題,不知如何解決,還請各位幫忙    問題如下:    1.在開始功能表->執行->cmd 2.在console window下輸入edit進如MS-Editor 3.此時若我要用keybd_event輸入"alt+f",怎麼試都沒有反應,假如不進editor的話,純console windows則不會有問題    程式碼如下:    
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
    HWND HWndCRTX;        HWndCRTX = FindWindow("ConsoleWindowClass", NULL);        if(ShowWindow(HWndCRTX, SW_SHOWNORMAL))
    {
        BringWindowToTop(HWndCRTX);            // press "alt f" key
        keybd_event(VK_MENU, 0, 0, 0);
        keybd_event(0x46, 0, 0, 0);
        keybd_event(0x46, 0, KEYEVENTF_KEYUP, 0);
        keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);            // press "x" key
        keybd_event(0x58, 0, 0, 0);
        keybd_event(0x58, 0, KEYEVENTF_KEYUP, 0);
    }
}
wildmonkey
一般會員


發表:1
回覆:1
積分:0
註冊:2003-04-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-09-03 22:09:13 IP:211.76.xxx.xxx 未訂閱
不好意思,我自己找到解答了,要加上鍵盤的scan code才能正常作用     
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
    HWND HWndCRTX;        HWndCRTX = FindWindow("ConsoleWindowClass", NULL);        if(ShowWindow(HWndCRTX, SW_SHOWNORMAL))
    {
        BringWindowToTop(HWndCRTX);            // press "alt f" key
        keybd_event(VK_MENU, MapVirtualKey(VK_MENU,0), 0, 0);
        keybd_event('F', MapVirtualKey('F',0), 0, 0);
        keybd_event('F', MapVirtualKey('F',0), KEYEVENTF_KEYUP, 0);
        keybd_event(VK_MENU, MapVirtualKey(VK_MENU,0), KEYEVENTF_KEYUP, 0);            // press "x" key
        keybd_event('X', MapVirtualKey('X',0), 0, 0);
        keybd_event('X', MapVirtualKey('X',0), KEYEVENTF_KEYUP, 0);
    }
}
 
系統時間:2024-04-29 5:21:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!