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

sendmessage與shellexecute搭配的問題

答題得分者是:aquarius
chimera
初階會員


發表:62
回覆:78
積分:28
註冊:2003-03-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-07 15:17:04 IP:203.69.xxx.xxx 未訂閱
  tmpHWnd := ShellExecute(Application.Handle, pchar('open'),
                          pchar('c:\windows\system32\cmd.exe'),
                          nil, nil, SW_show);      SendMessage(HWND_BROADCAST, WM_CHAR, 68, 0);
  SendMessage(HWND_BROADCAST, WM_CHAR, 73, 0);
  SendMessage(HWND_BROADCAST, WM_CHAR, 82, 0);
  SendMessage(HWND_BROADCAST, WM_CHAR, VK_RETURN, 0);
 
當我按下按鈕執行上面的procedure後,會在命令提示字元輸入兩次同樣的字母, 把HWND_BROADCAST改成tmpHWnd後,因為sendmessage好像在help中有寫到the message is not sent to child windows 所以沒辦法傳到命令提示字元,請問該怎麼修改才能讓正常的從我的程式下達指令到命令提示字元
aquarius
資深會員


發表:3
回覆:347
積分:330
註冊:2003-05-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-07 15:48:50 IP:211.23.xxx.xxx 未訂閱
procedure TouchKey(wVk:word;wScan:word;dwFlags,dwExtraInfo:dword) ;
var
   In1 : TInput ;
begin
 In1.Itype:=INPUT_KEYBOARD;
 In1.ki.wVk:=wVk;
 In1.ki.wScan:=wScan;
 In1.ki.dwFlags:=dwFlags;
 In1.ki.time:=0;
 In1.ki.dwExtraInfo:=dwExtraInfo;     SendInput(1, In1, sizeof(TINPUT));
end ;    procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Application.Handle, pchar('open'),
                          pchar('cmd.exe'),
                          nil, nil, SW_show);      sleep(300) ;      TouchKey(ord('D'),MapVirtualKey(ord('D'),0),0,0) ;
  TouchKey(ord('D'),MapVirtualKey(ord('D'),0),KEYEVENTF_KEYUP,0) ;      TouchKey(ord('I'),MapVirtualKey(ord('I'),0),0,0) ;
  TouchKey(ord('I'),MapVirtualKey(ord('I'),0),KEYEVENTF_KEYUP,0) ;      TouchKey(ord('R'),MapVirtualKey(ord('R'),0),0,0) ;
  TouchKey(ord('R'),MapVirtualKey(ord('R'),0),KEYEVENTF_KEYUP,0) ;      TouchKey(VK_RETURN,MapVirtualKey(VK_RETURN,0),0,0) ;
  TouchKey(VK_RETURN,MapVirtualKey(VK_RETURN,0),KEYEVENTF_KEYUP,0) ;    end;
 
...Aquarius
------
水瓶男的blog: http://791909.blogspot.com
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-07 15:53:04 IP:147.8.xxx.xxx 未訂閱
http://delphi.ktop.com.tw/link.asp?topic_id=38858 Value returned from ShellExecute is a fake handle....
系統時間:2024-05-10 19:16:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!