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

如何模擬按下Outlook 的Button

尚未結案
plot1234
一般會員


發表:5
回覆:7
積分:2
註冊:2002-03-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-11 13:56:41 IP:211.76.xxx.xxx 未訂閱
請問各位大大,我的問題跟這裡的問題是一樣的 http://delphi.ktop.com.tw/topic.php?topic_id=38320 根據http://groups.google.com.tw/groups?hl=zh-TW&lr=&ie=UTF-8&oe=UTF-8&th=93b49d77f26425d1&rnum=2 的說法,用mapi可以解決,所以我有嘗試著搜尋站上的文章,用mapi去做,但是依然會產生第二個畫面(要等五秒後按下是) 主管不準我用那個CLICKYES的TOOL 我又嘗試著用SendMessage來作,但是總是不成功,想請問各位大大,該怎麼做會比較好,謝謝 我的程式碼: var wnd: HWND; begin wnd:=FindWindow('','Microsoft Outlook'); SendMessage(wnd, mrYes, 0, 0); END;
chris_shieh
高階會員


發表:46
回覆:308
積分:240
註冊:2004-04-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-11 17:50:46 IP:219.68.xxx.xxx 未訂閱
用 keybd_event 模擬送出按鍵 參考http://delphi.ktop.com.tw/topic.php?topic_id=21387
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(0, 'open', 'mailto:sombody@some.com', nil, nil, SW_SHOWNORMAL); //叫出新郵件畫面
end;    procedure TForm1.Button2Click(Sender: TObject);
var
  hnd:THandle;
  str:String;
  i:integer;
begin
  hnd:=FindWindow(nil, '未命名的郵件');
  if hnd>0 then
  begin
    BringWindowToTop(hnd); //使其成為focus之window
    keybd_event(VK_TAB, 0, 0, 0); //按下tab
    keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0); //放開tab
    Sleep(1000);
    keybd_event(VK_RETURN, 0, 0, 0);                 //換行
    keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
  end;
end;    
發表人 - chris_shieh 於 2005/01/11 17:54:57
plot1234
一般會員


發表:5
回覆:7
積分:2
註冊:2002-03-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-12 16:25:31 IP:211.76.xxx.xxx 未訂閱
謝謝大大的回答,我試的結果,可以使用這樣的方法,但是有一個問題是, 當電腦鎖住的時候就沒有用了,我想大概是因為鎖住的時候,keyboard只有ctrl alt del可以作用吧,不知道這樣的問題要如何解決 現在正在嘗試用hotkey來作(ALT+Y) 但是還沒成功    
引言: 用 keybd_event 模擬送出按鍵 參考http://delphi.ktop.com.tw/topic.php?topic_id=21387
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(0, 'open', 'mailto:sombody@some.com', nil, nil, SW_SHOWNORMAL); //叫出新郵件畫面
end;    procedure TForm1.Button2Click(Sender: TObject);
var
  hnd:THandle;
  str:String;
  i:integer;
begin
  hnd:=FindWindow(nil, '未命名的郵件');
  if hnd>0 then
  begin
    BringWindowToTop(hnd); //使其成為focus之window
    keybd_event(VK_TAB, 0, 0, 0); //按下tab
    keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0); //放開tab
    Sleep(1000);
    keybd_event(VK_RETURN, 0, 0, 0);                 //換行
    keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
  end;
end;    
發表人 - chris_shieh 於 2005/01/11 17:54:57
plot1234
一般會員


發表:5
回覆:7
積分:2
註冊:2002-03-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-13 10:00:27 IP:211.76.xxx.xxx 未訂閱
已經解決了,目前採用的還是用sendmessage 參考 http://delphi.ktop.com.tw/topic.php?topic_id=49824 http://delphi.ktop.com.tw/topic.php?topic_id=30409 http://delphi.ktop.com.tw/topic.php?topic_id=37455 http://delphi.ktop.com.tw/topic.php?topic_id=30489 但是還是無法解決 電腦鎖定就無法作用的問題 發表人 - plot1234 於 2005/01/13 11:51:28
系統時間:2024-06-14 16:14:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!