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

ShellExecute 開ie 檔,第2次會DELAY???

尚未結案
shinhrn
中階會員


發表:54
回覆:165
積分:83
註冊:2002-06-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-04 12:06:27 IP:218.162.xxx.xxx 未訂閱
我寫了一個 ShellExecute 開檔案的功能,執行第1次時都沒問題, 可是如果我把ie關掉,再開檔1次,就會等很久才開網頁,不知是何原因? 而且如果在這情形下,連由windows左列 執行-->c:\.1html也會delay了!!!!! (ps:我試了doc不會) 我的環境是 2000 server,delphi 7.0 ,ie 6.0(ie 5.0也試過) procedure TForm1.Button5Click(Sender: TObject); begin ShellExecute(0, PChar('open'), PChar('c:\1.html'), nil, nil, SW_MAXIMIZE); end;
shinhrn
中階會員


發表:54
回覆:165
積分:83
註冊:2002-06-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-22 17:41:41 IP:218.162.xxx.xxx 未訂閱
(ps:如果有人試了不會也請告知,我想知道是不是我的機器有問題,謝謝) 都沒有人要幫我試是一下嗎?我想有兩個以上的人試不會,就認定是我的電腦問題
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-23 12:36:33 IP:210.65.xxx.xxx 未訂閱
Hi shinhrn,    測試一切正常,測試環境    CPU : Pentium 4 2.20Ghz RAM : 512 MB DDR HD : ST340842A Seagate 40 GB OS : Windows 2000 Professional with Service Pack 4 IE : 6.0.2600.0000 Delphi : 7.0    
------
Fishman
TATSU
版主


發表:50
回覆:135
積分:62
註冊:2003-01-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-23 17:14:12 IP:203.218.xxx.xxx 未訂閱
procedure OpenURL(strURL : String) ;
var
  reg : TRegistry ;
  lUseDefault : Boolean ;
  strParam : String ;
begin
  lUseDefault := True ;
  Reg := TRegistry.Create ;
  Reg.RootKey := HKEY_CLASSES_ROOT ;
  if Reg.OpenKey('htmlfile\shell\open\command',False) then
  begin
    strParam := Reg.ReadString('') ;
    if Length(strParam) > 0 then
    begin
      if Pos('"', strParam) = 1 then
        Delete(strParam, 1, 1) ;
      if Pos('"', strParam) > 0 then
        Delete(strParam, Pos('"',strParam), Length(strParam) - Pos('"',strParam)   1) ;
      if (Length(strParam) > 0) and (FileExists(strParam)) then
        lUseDefault := False ;
    end;
    Reg.CloseKey ;
  end;      Reg.Free ;      if lUseDefault then
    ShellExecute(0, PChar('open'), PChar(strURL), nil, nil, SW_NORMAL)
  else
    ShellExecute(0, PChar('open'), PChar(strParam), PChar(strURL), nil, SW_NORMAL) ;    end;    procedure TForm1.Button1Click(Sender: TObject);
begin
  OpenURL('c:\readme.htm') ;
end;
我不知道你的系統內的 I.E. 設定,但你測試程式時,試試不要在 Delphi IDE 內進行,建立了 EXE 檔就在外面執行,你也可以檢查你的 I.E. 是否有安裝什麼外掛的程式,那些 yahoo , google 等等的 toolbar 或其他不知名的東東。
shinhrn
中階會員


發表:54
回覆:165
積分:83
註冊:2002-06-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-24 16:01:43 IP:218.162.xxx.xxx 未訂閱
引言:
procedure OpenURL(strURL : String) ;
var
  reg : TRegistry ;
  lUseDefault : Boolean ;
  strParam : String ;
begin
  lUseDefault := True ;
  Reg := TRegistry.Create ;
  Reg.RootKey := HKEY_CLASSES_ROOT ;
  if Reg.OpenKey('htmlfile\shell\open\command',False) then
  begin
    strParam := Reg.ReadString('') ;
    if Length(strParam) > 0 then
    begin
      if Pos('"', strParam) = 1 then
        Delete(strParam, 1, 1) ;
      if Pos('"', strParam) > 0 then
        Delete(strParam, Pos('"',strParam), Length(strParam) - Pos('"',strParam)   1) ;
      if (Length(strParam) > 0) and (FileExists(strParam)) then
        lUseDefault := False ;
    end;
    Reg.CloseKey ;
  end;      Reg.Free ;      if lUseDefault then
    ShellExecute(0, PChar('open'), PChar(strURL), nil, nil, SW_NORMAL)
  else
    ShellExecute(0, PChar('open'), PChar(strParam), PChar(strURL), nil, SW_NORMAL) ;    end;    procedure TForm1.Button1Click(Sender: TObject);
begin
  OpenURL('c:\readme.htm') ;
end;
我不知道你的系統內的 I.E. 設定,但你測試程式時,試試不要在 Delphi IDE 內進行,建立了 EXE 檔就在外面執行,你也可以檢查你的 I.E. 是否有安裝什麼外掛的程式,那些 yahoo , google 等等的 toolbar 或其他不知名的東東。
我知道直接呼叫ie是不會delay,如下是我現在的做法 procedure ieopen(sCommandLine:string); var IE:olevariant; begin ie:=CreateOleObject('InternetExplorer.Application'); ie.Navigate(sCommandLine); ie.visible:=true; end; 可是不知道為何,用open第2次會delay才是我的疑問.. 你能幫我試試 ShellExecute(0, PChar('open'), PChar('c:\1.html'), nil, nil, SW_MAXIMIZE); 第二次會delay嗎?
系統時間:2024-05-15 1:10:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!