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

使用ShellExecute的相關問題

答題得分者是:懷舊的人
cyl
中階會員


發表:163
回覆:171
積分:66
註冊:2002-07-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-16 14:30:23 IP:61.30.xxx.xxx 未訂閱
請問我使用 ShellExecute呼叫某一個執行檔,若被呼叫端,想返回呼叫端程式, 應該如何寫??
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-16 15:26:26 IP:202.39.xxx.xxx 未訂閱
用這種方式可以嗎?
begin
  ShellExecute(0, PChar('open'), PChar('C:\xxx.exe'), 
    nil, SW_SHOWMINNOACTIVE);
end;
cyl
中階會員


發表:163
回覆:171
積分:66
註冊:2002-07-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-16 17:59:44 IP:61.30.xxx.xxx 未訂閱
引言: 用這種方式可以嗎?
begin
  ShellExecute(0, PChar('open'), PChar('C:\xxx.exe'), 
    nil, SW_SHOWMINNOACTIVE);
end;
這樣會又重複把程式又執行一次,並不是返回原來呼叫的那個程式, 我是希望被呼叫端程式可以返回原來呼叫它的程式,而不是又再執行一次呼叫端程式
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-02-16 18:22:21 IP:202.39.xxx.xxx 未訂閱
引言: 這樣會又重複把程式又執行一次,並不是返回原來呼叫的那個程式, 我是希望被呼叫端程式可以返回原來呼叫它的程式,而不是又再執行一次呼叫端程式
小弟的意思是用上述方式來執行外部程式 藍色部分參數的意思, 在 Help 中是說 Displays the window as a minimized window. The active window remains active. 也就是原本 Focus 在甲程式 甲程式用 ShellExecute 呼叫乙程式後 乙程式是最小化的, 而 Focus 仍是在甲程式 不然就執行完 ShellExecute 這行之後 再執行 ShowWindow(Application.Handle); 這樣不知可不可以?
cyl
中階會員


發表:163
回覆:171
積分:66
註冊:2002-07-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-02-16 19:02:13 IP:61.30.xxx.xxx 未訂閱
Dear Hagar: 我誤會你的意思了,可是好像還是跟我想要的有點不一樣, A.exe 呼叫 B.exe後,B.exe會按下返回,就必須回到原來a.exe focus的元件上, 不知可否做到???
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-02-16 19:32:06 IP:202.39.xxx.xxx 未訂閱
var hWnd: Integer;
begin
  // hWnd 為要返回的那個程式的視窗 Handle
  hWnd := FindWindow('TApplication', PChar('Project1.Exe'));
  if hWnd <> 0 then begin
    if IsIconic(hWnd) then
      ShowWindow(hWnd, SW_RESTORE)
    else
      SetForegroundWindow(hWnd);
  end;
end;
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-02-17 11:32:32 IP:61.219.xxx.xxx 未訂閱
引言: Dear Hagar: 我誤會你的意思了,可是好像還是跟我想要的有點不一樣, A.exe 呼叫 B.exe後,B.exe會按下返回,就必須回到原來a.exe focus的元件上, 不知可否做到???
妳是說 B.exe 像 ShowModal 的行為嗎 ? /* Free 和 Create 一樣重要 */
懷舊的人
高階會員


發表:28
回覆:152
積分:141
註冊:2003-01-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-02-17 12:23:30 IP:152.104.xxx.xxx 未訂閱
引言: [quote] 1. 妳必須把呼叫端的 Form.Handle 傳給被呼叫端 2. 被呼叫端按返回健時 下 ShowWindow(Form.Handle,SW_SHOW); 3. 被呼叫端在 FormCreate 時用 ParamCount 檢查是否有參數傳入,請查 Help 謝謝 4. 記得將參數作型態轉換
系統時間:2024-04-29 23:25:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!