AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Webseite im Standardbrowser laden (Probleme)
Thema durchsuchen
Ansicht
Themen-Optionen

Webseite im Standardbrowser laden (Probleme)

Ein Thema von himitsu · begonnen am 23. Apr 2004 · letzter Beitrag vom 27. Apr 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.051 Beiträge
 
Delphi 12 Athens
 
#1

Webseite im Standardbrowser laden (Probleme)

  Alt 23. Apr 2004, 18:57
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'sShellExecute(0, 'open', 'http://www.xyz.de/index.php#pos', '', nil, SW_Show); 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 geladenShellExecute(0, 'open', 'http://www.xyz.de/index.php', '', nil, SW_Show); geht auch nicht - es heist dort "Zugriff verweigert", dabei bin ich als Admin angemeldet?
(das Programm/Verzeichnis wird aus der Registry geholt und dieser Pfad ist auch in Ordnung)ShellExecute(0, 'open', PChar(Prog), 'http://...', nil, SW_Show); Auch wenn es nicht mit WinExec hab ich es schon versucht.
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:
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);
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Markus K.

Registriert seit: 26. Jan 2004
Ort: Halle
346 Beiträge
 
Delphi 2005 Personal
 
#2

Re: Webseite im Standardbrowser laden (Probleme)

  Alt 23. Apr 2004, 19:28
Hallo himitsu,
der folgende Code öffnet die Website immer in einem neuen Fenster...jedenfalls bei mir. Vielleicht hilft er dir weiter.
Delphi-Quellcode:
begin
     ShellExecute(0, 'Open',PChar('IEXPLORE.EXE'),'http://web.de', nil, SW_ShowNormal);
end;
Tschüß Markus
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Webseite im Standardbrowser laden (Probleme)

  Alt 23. Apr 2004, 19:52
Zitat von Markus K.:
Hallo himitsu,
der folgende Code öffnet die Website immer in einem neuen Fenster...jedenfalls bei mir. Vielleicht hilft er dir weiter.
Delphi-Quellcode:
begin
     ShellExecute(0, 'Open',PChar('IEXPLORE.EXE'),'http://web.de', nil, SW_ShowNormal);
end;
Tschüß Markus
Und wenn jemand nicht den Internet Explorer verwendet?

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Nonsense
Nonsense

Registriert seit: 23. Nov 2002
389 Beiträge
 
Delphi 5 Standard
 
#4

Re: Webseite im Standardbrowser laden (Probleme)

  Alt 23. Apr 2004, 20:10
http://www.google.com/search?q=regis...G=Google-Suche
  Mit Zitat antworten Zitat
Markus K.

Registriert seit: 26. Jan 2004
Ort: Halle
346 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Webseite im Standardbrowser laden (Probleme)

  Alt 23. Apr 2004, 20:15
Hallo mirage228,
dann würde ich vorher noch den Standardbrowser ermitteln z.B.:
Delphi-Quellcode:
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;
Tschüß Markus
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.051 Beiträge
 
Delphi 12 Athens
 
#6

Re: Webseite im Standardbrowser laden (Probleme)

  Alt 23. Apr 2004, 20:23
@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
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
MrKnogge

Registriert seit: 9. Jun 2003
Ort: Pforzheim
2.458 Beiträge
 
Delphi 2007 Professional
 
#7

Re: Webseite im Standardbrowser laden (Probleme)

  Alt 23. Apr 2004, 20:39
Deine Firewall hat deinem Programm verboten mit der IExplorer.exe zu reden

Ich dachte die überwachen nur die Port's in die große weite Welt der Daten !?
Christian Bootz
Einstein ist tot, Newton ist tot,
und mir ist auch schon ganz schlecht...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.051 Beiträge
 
Delphi 12 Athens
 
#8

Re: Webseite im Standardbrowser laden (Probleme)

  Alt 23. Apr 2004, 20:57
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
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
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.051 Beiträge
 
Delphi 12 Athens
 
#9

Re: Webseite im Standardbrowser laden (Probleme)

  Alt 26. Apr 2004, 12:07
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:
{ 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}
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.
Delphi-Quellcode:
If (Prog = '') or (ShellExecute(0, 'open', PChar(Prog), 'http://...#Pos', nil, SW_Show) <> 0) Then
  ShellExecute(0, 'open', 'http://...', nil, nil, SW_Show);
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Webseite im Standardbrowser laden (Probleme)

  Alt 26. Apr 2004, 12:56
bist du sicher das 42 ein fehlercode ist? in meiner Hilfe steht
Zitat:
If the function succeeds, the return value is the instance handle of the application that was run
[...]
If the function fails, the return value is an error value that is less than or equal to 32. The following table lists these error values
und 42 ist doch größer 32
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz