ShellExecute 開ie 檔,第2次會DELAY??? |
尚未結案
|
shinhrn
中階會員 ![]() ![]() ![]() 發表:54 回覆:165 積分:83 註冊:2002-06-05 發送簡訊給我 |
我寫了一個 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 發送簡訊給我 |
|
Fishman
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
|
TATSU
版主 ![]() ![]() ![]() 發表:50 回覆:135 積分:62 註冊:2003-01-16 發送簡訊給我 |
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 發送簡訊給我 |
引言:我知道直接呼叫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嗎?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 或其他不知名的東東。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |