全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1984
推到 Plurk!
推到 Facebook!

關於呼叫exe執行檔 並模擬鍵盤輸入 !!!

答題得分者是:aki0921
tkukof
一般會員


發表:2
回覆:4
積分:1
註冊:2009-09-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-06-01 11:33:41 IP:220.128.xxx.xxx 訂閱
各位 大大,


小弟現在要用ShellExecute 執行 art.exe 程式,art .exe 為dos 程式介面,

執行後會停留在等待使用者輸入鍵盤 ,我參考板上的討論,寫出了抓取每個視窗handle

並對每個視窗寫入 0x51 ->" q" 字元

但是發覺好像沒有用 ,我的art .exe並不會收到q字元而關閉

請大大幫我看一下 那邊需要修改 或是 有其它方式解決


以下為程式碼

ShellExecute(NULL,NULL,"C:\\art\\art.exe",PARA,NULL,SW_SHOW);
// GetWindow(&hWnd,GW_HWNDLAST);
// GetWindow(&hWnd,GW_CHILD);
// GetWindow(&hWnd,GW_ENABLEDPOPUP);

int olditemindex=ListBox1->ItemIndex;
ListBox1->Items->Clear();
HANDLE hCurrentWindow = GetWindow(Handle, GW_HWNDFIRST);
char szText[254];
char className[254];
String t;
String c;
while (hCurrentWindow != 0)
{
if((GetWindowText(hCurrentWindow, szText, 255) > 0) && (IsWindowVisible(hCurrentWindow)))
{
GetClassName(hCurrentWindow,className,255);
t=szText;
c=className;
ListBox1->Items->Add(t);
}
SendMessage(hCurrentWindow,WM_KEYDOWN,0x51,0);
hCurrentWindow = GetWindow(hCurrentWindow, GW_HWNDNEXT);
}
if (olditemindex<=(ListBox1->Items->Count))
ListBox1->ItemIndex=olditemindex;
------
偶肉肉
aki0921
一般會員


發表:13
回覆:11
積分:14
註冊:2007-12-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-06-18 15:43:17 IP:60.251.xxx.xxx 訂閱
 可以使用

[code cpp]
keybd_event(81,0,0,0);
[/code]
系統時間:2017-10-21 12:36:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!