![]() |
ShellExecute, html-seite in einem NEUEN fenster öffnen?
hi,
ich versuch eine seite mittels ShellExecute(0, 'open', 'http://www.xyz.de', nil, nil, SW_SHOW); in einem neuen fenster zu öffnen. wenn aber schon ein browserfenster geöffnet ist wird dieses fenster genommen und die siete darin geladen. Ich will aber das ein neues fenster geöffnet wird. kann mir bitte jemand helfen! danke ralf |
Re: ShellExecute, html-seite in einem NEUEN fenster öffnen?
wirst du mit Shellexecute alleine nicht hinn bekommen. Folgende Funktion sollte das machen was du willst:
Delphi-Quellcode:
procedure OpenHttpSite(AURL: String);
var LRegistry: TRegistry; LBrowser: String; LStart, LEnd: Integer; begin LRegistry := TRegistry.Create(KEY_READ); try LRegistry.RootKey := HKEY_CLASSES_ROOT; if LRegistry.OpenKey('http\shell\open\command', false) then begin LBrowser := LRegistry.ReadString(''); if pos('"', LBrowser) > 0 then begin LStart := pos('"', LBrowser); LEnd := PosExt('"', LBrowser, LStart + 1); if LEnd > 0 then LBrowser := copy(LBrowser, LStart + 1, LEnd - (LStart + 1)); end; LRegistry.CloseKey; end; finally LRegistry.Free; end; if ShellExecute(0, 'open', PChar(LBrowser), PChar(AUrl), nil, SW_SHOW) <= 32 then ShellExecute(0, 'open', PChar(AUrl), nil, nil, SW_SHOW) end; |
Re: ShellExecute, html-seite in einem NEUEN fenster öffnen?
WOW das ging aber schnell!!!!!!!!!!!
ich wollt grad den thread löschen weil ich im forum die lösung gefunden habe ShellExecute(0, 'Open',PChar('IEXPLORE.EXE'),'http://web.de', nil, SW_ShowNormal); damit gehts wenn man halt den iexplorer beutzt und mir langt das. Aber vielen vielen dank für die schnelle antwort!! ralf |
Re: ShellExecute, html-seite in einem NEUEN fenster öffnen?
Genau, wenn man den ie nutzt geht deine Variante, die Variante die ich gepostet hab sucht aus der Registry den Standardbrowser heraus und macht dann das gleiche
|
Re: ShellExecute, html-seite in einem NEUEN fenster öffnen?
Hatte selbiges Problem und hab das gefunden :)
Delphi-Quellcode:
Funzt bei mir optimal
ShellExecute(handle, 'open', PChar('about:blank'), nil, nil, sw_Show);
ShellExeCute(handle, 'open', PChar('deineadresse'), nil, nil, sw_Show); air |
Re: ShellExecute, html-seite in einem NEUEN fenster öffnen?
@Airblader: Deine variante ist ja die aus dem Ausgangspost. Und wenn ich deine Variante ausführe wird durch about:blank bei mir eine leeres IE-Fenster geöffnet, und durch die zweite anweisung wird dann die webseite in meinem Standardbrowser geöffnet. Das heißt ich hab ein offenes ie-fenster mit leerer seite
|
Re: ShellExecute, html-seite in einem NEUEN fenster öffnen?
Zitat:
air edit: Dein Code geht aber auch nicht...er kennt PosExt nicht? |
Re: ShellExecute, html-seite in einem NEUEN fenster öffnen?
@Airblader: PosEx gibt es seit Delphi6 oder Delphi7 erst. Daher hab ich eine eigene Funktion noch gebaut:
Delphi-Quellcode:
man kann natürlich auch wenn man delphi6 oder höher besitzt aus dem "posext" einfach ein "posex" machen
function PosExt(const SubStr, S: string; Offset: Cardinal = 1): Integer;
var I,X: Integer; Len, LenSubStr: Integer; begin if Offset = 1 then Result := Pos(SubStr, S) else begin I := Offset; LenSubStr := Length(SubStr); Len := Length(S) - LenSubStr + 1; while I <= Len do begin if S[I] = SubStr[1] then begin X := 1; while (X < LenSubStr) and (S[I + X] = SubStr[X + 1]) do Inc(X); if (X = LenSubStr) then begin Result := I; exit; end; end; Inc(I); end; Result := 0; end; end; |
Re: ShellExecute, html-seite in einem NEUEN fenster öffnen?
Seltsam, ich hab D6 aber PosEx kennt er auch nicht.
dann übernehm ich mal deine funktion ;) air |
Re: ShellExecute, html-seite in einem NEUEN fenster öffnen?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz