Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Programm über TWebbrowser starten (https://www.delphipraxis.net/90759-programm-ueber-twebbrowser-starten.html)

flosoft 23. Apr 2007 13:05


Programm über TWebbrowser starten
 
Hallo,
ich möchte ein CD Menü mit der TWebbrowser Komponente realiesen, da es bereits in HTML vorliegt.
Aus dieser HTML-Seite möchte ich selbst geschrieben Programme (*.exe) starten ohne die störende Frage ob ich das Programm ausführen oder speichern möchte. Das eigentliche Starten der Progarmme funktioniert bereits (ShellExecute bzw. CreateProcess).
Wie kann ein Link auf der HTML-Seite auf CreateProcess "umleiten"? :wall:
Danke!

grips-net 23. Apr 2007 13:20

Re: Programm über TWebbrowser starten
 
Hallo.

Du kannst den aufgerufenen Link abfangen.

Ergänze dazu das BeforeNavigate2 - Ereignis ...

Delphi-Quellcode:
     

iRun := pos('RUN:', URL);    

if iRun > 0 then
  sUrl := copy(URL, iRun+4, 1024);

if sUrl = 'meinprogramm' then
begin
 if fileexists(sFile) then
   ShellExecute(self.handle, pChar('OPEN'), pChar(SFile), nil, nil, SW_SHOW);
     
 Cancel := true; // Bricht das Navigieren ab.
end;
... und ändere den Link im HTML-Quellcode nach ...

Das BeforeNavigate2 - Ereignis kannst du nach Belieben erweitern.


Grüße

Michael

flosoft 23. Apr 2007 15:31

Re: Programm über TWebbrowser starten
 
Hallo grips-net,

danke funktioniert so wie gewollt :-D

Mußte allerdings
Delphi-Quellcode:
iRun := pos('RUN:', URL);
zu
Delphi-Quellcode:
iRun := pos('run:', URL);
ändern.

flosoft 24. Apr 2007 21:40

Re: Programm über TWebbrowser starten
 
Hi grips-net,

Dein Lösung funktioniert wie gesagt super unter XP und IE6. Mit Vista und IE7 :evil: scheint aber irgendwas bei dem BeforeNavigate2 Ereignis anders zu sein.
Hat jemand eine Lösung?

Danke

grips-net 25. Apr 2007 09:11

Re: Programm über TWebbrowser starten
 
Hallo flosoft,

ich habe die Lösung quasi so unter VISTA und IE 7 getestet. Was mein Programm nicht hat, ist das shellexecute. Statt dessen fange ich die Links ab und öffne ein Delphi-Formular.

Vielleich debugst du dein System mal und sagst mir wie weit du kommst:
  • Springt er in das Ereignis OnBeforeNavigate2?
  • Welchen Wert hat die Variable URL?
  • Was macht shellexecute wenn du es mit den identischen Parametern manuell (Button) aufrufst?


Grüße aus dem Saarland

Michael Gillen

flosoft 25. Apr 2007 10:15

Re: Programm über TWebbrowser starten
 
Hi Michael,

danke für den Hinweis. War wohl schon zu müde, um das Problem genauer anzugehen.

Es liegt an der Routine, die meine Programme startet! Ich verwende nicht ShellExecute sondern CreateProcess.
Gut oder auch nicht - nun weis ich jedenfalls wo ich weiter suchen muss.



Grüße aus Köln
Florian


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:33 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