![]() |
Webseite im Standardbrowser laden (Probleme)
Ich weiß, es gibt schon zu viele Fragen dieser Art, aber dennoch hat mir nicht's richtig gehlfen.
Also ich möchte eine Webseite in einen neuen Fenster des Standardbrowsers laden, aber es geht nicht: Das öffnet zwar die Seite, aber nur wenn schon ein Browserfenser vorhanden ist, sonst passiert nicht's
Delphi-Quellcode:
Ohne Angabe von #pos wird notfalls ein Fenster geöffnet (wenn noch keines offen ist), aber wenn schon eies da ist, dann wird auch hier die Seite in dem vorhandenemn geladen
ShellExecute(0, 'open', 'http://www.xyz.de/index.php#pos', '', nil, SW_Show);
Delphi-Quellcode:
geht auch nicht - es heist dort "Zugriff verweigert", dabei bin ich als Admin angemeldet?
ShellExecute(0, 'open', 'http://www.xyz.de/index.php', '', nil, SW_Show);
(das Programm/Verzeichnis wird aus der Registry geholt und dieser Pfad ist auch in Ordnung)
Delphi-Quellcode:
Auch wenn es nicht mit WinExec hab ich es schon versucht.
ShellExecute(0, 'open', PChar(Prog), 'http://...', nil, SW_Show);
Delphi-Quellcode:
WinExec('http://www.xyz.de/index.php#pos', SW_SHOW);
WinExec(PChar('"' + Prog + '" http://www.xyz.de/index.php#pos'), SW_SHOW); mein derzeitiger Code, der eigentlich funktionieren sollte - zumindestens wird im Fehlerfall (der ja komischer Weise immer ist) die Seite dennoch geöffnet, wenn auch nicht dort, wo sie soll :( : (da in der Registry '"K:\Programme\Internet Explorer\iexplore.exe" -nohome' steht, wird " und der Parameter noch entfernt)
Delphi-Quellcode:
Falls keinem was einfällt, dann wäre ich auch damit zufriden, wenn ich erfahr' wie man vor Programm aus einen Link in einem TWebBrowser anklicken kann, da zumindestens dieses mal ein WebBrowser mit im Programm ist.
Prog := '';
With TRegistry.Create(Key_Read) do Try RootKey := HKEY_CLASSES_ROOT; If OpenKey('http\shell\open\command', false) Then Begin Prog := Trim(ReadString('')); CloseKey; End; Finally Free; End; If Pos('"', Prog) > 0 Then Begin If Prog[1] = '"' Then Delete(Prog, 1, 1); Prog := Trim(Copy(Prog, 1, Pos('"', Prog) - 1)); End Else If Pos(' ', Prog) > 0 Then Prog := Copy(Prog, 1, Pos(' ', Prog) - 1); If (Prog = '') or (ShellExecute(0, 'open', PChar(Prog), 'http://www.xyz.de/index.php#pos', nil, SW_Show) <> 0) Then If ShellExecute(0, 'open', 'http://www.xyz.de/index.php#pos', '', nil, SW_Show) <> 0 Then ShellExecute(0, 'open', 'http://www.xyz.de/index.php', '', nil, SW_Show); |
Re: Webseite im Standardbrowser laden (Probleme)
Hallo himitsu,
der folgende Code öffnet die Website immer in einem neuen Fenster...jedenfalls bei mir. Vielleicht hilft er dir weiter.
Delphi-Quellcode:
Tschüß Markus
begin
ShellExecute(0, 'Open',PChar('IEXPLORE.EXE'),'http://web.de', nil, SW_ShowNormal); end; |
Re: Webseite im Standardbrowser laden (Probleme)
Zitat:
mfG mirage228 |
Re: Webseite im Standardbrowser laden (Probleme)
|
Re: Webseite im Standardbrowser laden (Probleme)
Hallo mirage228,
dann würde ich vorher noch den Standardbrowser ermitteln z.B.:
Delphi-Quellcode:
Tschüß Markus
var
StandardBrowser: String; begin with TRegistry.Create do try rootkey := HKEY_CLASSES_ROOT; OpenKey('\htmlfile\shell\open\command', False); try StandardBrowser := ReadString(''); except StandardBrowser := ''; end; CloseKey; finally Free; end; if StandardBrowser = '' then Exit; StandardBrowser:= Copy(StandardBrowser, Pos('"', StandardBrowser) + 1, Length(StandardBrowser)); StandardBrowser:= Copy(StandardBrowser, 1, Pos('"', StandardBrowser) - 1); ShellExecute(0, 'Open',PChar(StandardBrowser),'http://web.de', nil, SW_ShowNormal); end; |
Re: Webseite im Standardbrowser laden (Probleme)
@Markus K.
wegen dem, was mirage228 schon sagte, wollte ich ja den IE nicht direkt angeben. Und mein Code geht jetzt doch. Hab mal meine FireWall zurückgesetzt - die hatte aus irgendeinem unerfindlichen Grund meinem Programm den direkten Zugiff auf "iexplorer.exe" verboten Also: die FireWall war Schuld :wall: :wall: :wall: |
Re: Webseite im Standardbrowser laden (Probleme)
Deine Firewall hat deinem Programm verboten mit der IExplorer.exe zu reden :shock:
Ich dachte die überwachen nur die Port's in die große weite Welt der Daten !? |
Re: Webseite im Standardbrowser laden (Probleme)
Nee, nicht nur - ich hab 'ne FW von Kerio und die überwacht vieles.
z.B. kann ich das Starten von noch nicht vreigegebenen/geänderten Dateien verhinden oder programmen verbieten andere Programme zu starten ... Allerding hatte ich meinem Proggi alles erlaubt :gruebel: aber jetzt fällt mir gerade auf, der der TWebBrowser beim Start meines Programmes versucht den CTF Loader (ctfmon.exe) zu starten und diese hatte ich geblockt? der CTF Loader ist doch meines Wissens eine "unwichtige" Datei vom MS Office-Packet??? Na ja, zumindestens weiß ich jetzt, das der Fehler nicht am Programm lag :) |
Re: Webseite im Standardbrowser laden (Probleme)
So, es ist also doch noch nicht überstanden, zwar funktioniert der Aufruf super (so wie gewollt), aber es wird dennoch ein Fehlercode zurückgegeben, das den Ersatzaufruf ausführt - also es werden 2 Seiten geladen, wobei der Ersatzaufruf natürlich wieder ein geöffenetes Fensert überschreibt.
Leider hab ich keine Ahnung, was der Fehlercode 42 bedeutet. Es schein auch keine Konstante dafür zu geben - hab schon Einiges durchgeschaut...
Delphi-Quellcode:
Wie man sieht, wird sobald ein Standardbrowser gefunden wurde, die Webseite über diesen geladen und bei einen Fehler wirds nochmal ohne eine Programmangabe versucht, aber da ja der Fehlercode 42 zurückgegeben wird, obwohl der 1. Aufruf funktioniert, wird ja die Seite doppelt geladen.
{ Windows - Define the severity codes }
ERROR_FILE_NOT_FOUND = 2; ERROR_PATH_NOT_FOUND = 3; ... { ShellAPI - ShellExecute() and ShellExecuteEx() error codes } SE_ERR_FNF = 2; { file not found } SE_ERR_PNF = 3; { path not found } ... {nirgends gibt es 'ne 42}
Delphi-Quellcode:
Ich könnte zwar den 1. Aufruf bei 0 und 42 als Erfolgreich werten, aber das gefällt mir nicht so richtig, da ich ja nicht weiß, was die 42 ist.
If (Prog = '') or (ShellExecute(0, 'open', PChar(Prog), 'http://...#Pos', nil, SW_Show) <> 0) Then
ShellExecute(0, 'open', 'http://...', nil, nil, SW_Show); |
Re: Webseite im Standardbrowser laden (Probleme)
bist du sicher das 42 ein fehlercode ist? in meiner Hilfe steht
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 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