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

利用TWebBrowser開啟WORD文件之後

答題得分者是:hagar
syene
一般會員


發表:17
回覆:12
積分:5
註冊:2003-01-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-18 11:03:40 IP:220.138.xxx.xxx 未訂閱
各位好: 當您的app利用TWebBrowser元件開啟一個word文件之後, 將app關掉,卻發現Window 工作管理員中WINWORD.EXE依舊佔用記憶體, 試著利用IE開啟WORD文件之後,發現依樣情形。 請問如何在app 關閉時,偵測app有無開啟word, 如果有順便 terminate該WINWORD.EXE PROCESS。 Tks.
hagar
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-18 11:30:25 IP:202.39.xxx.xxx 未訂閱
用如下的方式試試:
uses ComObj;    procedure TForm1.Button2Click(Sender: TObject);
var
  v: Variant;
begin
  try
    v := GetActiveOleObject('Word.Application');        // 有 MS Word 文件被開啟的話就會執行到這一行
    v.Quit; // 以下兩行關閉 MS Word
    v := Unassigned;
  except
    // 觸發 Exception 的話表沒當前沒有 MS Word 文件被開啟
  end;
end;
-- hagar.
syene
一般會員


發表:17
回覆:12
積分:5
註冊:2003-01-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-06-18 11:49:42 IP:220.138.xxx.xxx 未訂閱
試了之後,發現依舊佔著記憶體... 其實他沒有視窗出現,只是當你開啟妳的app去讀取word文件後, 一經載入後就無法由app本身terminate, 但由task manager是可以移除啦! 但是這樣對你的app就不好啦...不是嗎?
引言: 用如下的方式試試:
uses ComObj;    procedure TForm1.Button2Click(Sender: TObject);
var
  v: Variant;
begin
  try
    v := GetActiveOleObject('Word.Application');        // 有 MS Word 文件被開啟的話就會執行到這一行
    v.Quit; // 以下兩行關閉 MS Word
    v := Unassigned;
  except
    // 觸發 Exception 的話表沒當前沒有 MS Word 文件被開啟
  end;
end;
-- hagar.
發表人 - syene 於 2005/06/18 11:58:59
hagar
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-06-18 12:09:50 IP:202.39.xxx.xxx 未訂閱
小弟試的結果有點不同 當程式關閉後, 程式管理員中的 winword.exe 這個 process 也會消失 所以幫不上忙 -- hagar.
syene
一般會員


發表:17
回覆:12
積分:5
註冊:2003-01-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-06-19 10:16:27 IP:220.138.xxx.xxx 未訂閱
謝謝hagar熱心的提供方法, 其實應該是我的問題沒po清楚, 我的系統是在windows 2000 server SP4, OFFICE 2000,Delphi  7.0。 其實該應用程式很簡單, 就是利用TWebBowser元件瀏覽office 2000 文件, 包括:Word, Excel ,甚至是PowerPoint,jpeg,gif, 還有Flash 等。 這個程式大致上都完成了, 唯獨執行後,在Windows 工作管理員中, 會留下 WINWORD.EXE 佔用記憶體未隨ap關閉而釋放, 但是該ap 開啟EXCEL 文件就不會有這成況, 而能隨著ap關閉然後Terminate "EXCEL.EXE" Process, 不過還是要強調一次, 其實在我目前的系統, 如果直接利用Microsoft IE 開啟 word 文件, 當關閉 IE 之後,也一樣有這情形, WINWORD.EXE 該 process 依然未隨著ie關閉而terminate, 但EXCEL.EXE就會隨著 ie關閉而terminate.    我在想這會不會是word的問題? 另外有沒有一種方法可以查出有關該AP在執行過程中, 可能使用到的其他應用程式, 當然包括office,在ap結束時一併關掉? 謝謝.     
引言: 小弟試的結果有點不同 當程式關閉後, 程式管理員中的 winword.exe 這個 process 也會消失 所以幫不上忙 -- hagar.
系統時間:2024-05-17 10:05:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!