![]() |
FireFox im hintergrund öffnen und link kopieren
Guten Tag liebe DP USer,
ich bin grade dabei ein kleines Programm für mein Eigengebrauch zu entwickeln was mir ein wenig arbeit abnehmen soll ;) Ich habe aber leider 3 Probleme... :-[ 1. Wie kann ich im Hintergrund den FireFox oder IE öffnen mit einem bestimmten Link ohne das es mich stört, also das ich es nicht sehe? 2. Wie kann ich dann da auf einem Button klicken auf der Seite? 3. Wie kann ich dann den Link aus der Adresszeile kopieren? Ich danke euch jetzt schon mal vielmals für eure Bemühungen mir zu helfen! Mit freundlichen Grüßen 0NyX |
Re: FireFox im hintergrund öffnen und link kopieren
1. CreateProcess übernimmt im StartupInfo einen Parameter für ShowWindow, da könntest du z.B. SW_SHOWMINNOACTIVE angeben (minimiert, nicht aktiviert).
2. Nicht ganz so einfach. Entweder den Browser über COM fernsteuern, oder mit FindWindowEx und co den entsprechenden Button suchen. 3. Wie 2., nur mit Edit statt Button. Das sind jetzt zwar nur Anregungen, aber im Zweifel solltest du das als Suchbegriffe verwenden können. |
Re: FireFox im hintergrund öffnen und link kopieren
Zitat:
Ich bin ein totaler Anfänger in der Delphi Programmierung, also habe noch nicht so viel Ahnung... |
Re: FireFox im hintergrund öffnen und link kopieren
DAnn nutze die Hilfe mit den von Ghost vorgeschlagenen Suchbegriffen. Hier findest du bestimmt was :thumb:
|
Re: FireFox im hintergrund öffnen und link kopieren
Hallo,
warum soll denn ein Browser gestartet werden? Der Browser ist in erster Linie für das Rendern einer HTML-Seite zuständig, alles andere kann in der Regel auch mit einer reinen HTTP-Komponente erledigt werden - insbesondere wenn das Browser-Fenster auf dem Desktop sowieso unerwünscht ist. Ich würde die Seite im Browser anfordern und den Quelltext untersuchen, damit ich erfahre wie der Button zu adressieren ist. Beim Anfordern der Seite erfahre ich auch, ob ich mich um ein Session-Cookie kümmern muss, ob JavaScript mit im Spiel ist und welche hidden input fields eventuell zurück geschickt werden müssen. Grüße vom marabu |
Re: FireFox im hintergrund öffnen und link kopieren
Zitat:
Ich dachte es geht nur so wenn ich den Browser öffne, wenn es anders geht ist es ja perfekt... =) Ich hatte eben den Quelltext der Seite durchsucht aber der Butten ist sehr komisch verlinkt
Delphi-Quellcode:
aber wenn man drauf klickt erscheint in der Adressenzeile die richtige URL!
<input type="Button" onclick="launchDownloadURL('%31%63%62%39%31%37%61%64%31%65%30%62%65%61%61%39', '0')" value="Download" />
Vielen Dank für eure Hilfe! |
Re: FireFox im hintergrund öffnen und link kopieren
Beim Klick auf den Button wird eine JavaScript-Funktion ausgeführt. Diese hat zwei Parameter, wovon der erste ein percent encoded hex string ist (%31 = #$31 = '1'). Die Funktion launchDownloadURL() solltest du im Quelltext der Seite (direkt oder referenziert) finden. In dieser Funktion wird aus den Parametern wahrscheinlich der endgültige URL gebaut. Diese JavaScript-Funktion musst du in Delphi nachbauen.
|
Re: FireFox im hintergrund öffnen und link kopieren
Vielen Dank für eure schnelle und gute Hilfe, hab es länger versucht aber nicht hin bekommen, da ich auch die Anweisung launchDownloadURL nicht gefunden habe. Ich danke euch trotzdem nochmal vielmals hab dadurch auf jeden fall was dazu gelernt!
|
Re: FireFox im hintergrund öffnen und link kopieren
Hallo,
wer wird denn gleich aufgeben?
Delphi-Quellcode:
Freundliche Grüße
unit DemoFrm;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw, StdCtrls; type TDemoForm = class(TForm) Button: TButton; procedure ButtonClick(Sender: TObject); procedure BeforeNavigate2(Sender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); private ActiveUrl: string; end; var DemoForm: TDemoForm; implementation {$R *.dfm} uses MSHTML; procedure TDemoForm.ButtonClick(Sender: TObject); const url = 'http://www.google.de'; var wb: TWebBrowser; body, doc, frm: OleVariant; begin wb := TWebBrowser.Create(nil); wb.ParentWindow := HWND(HWND_MESSAGE); wb.OnBeforeNavigate2 := BeforeNavigate2; wb.Navigate(url); repeat Sleep(50); Application.ProcessMessages; until wb.ReadyState >= READYSTATE_COMPLETE; doc := wb.OleObject.Document; body := doc.body; frm := doc.Forms.Item(0); frm.Elements.Item('q').Value := 'onyx'; frm.Elements.Item('btnG').Click; repeat Sleep(50); Application.ProcessMessages; until wb.ReadyState >= READYSTATE_COMPLETE; wb.Free; ShowMessage(StringReplace(ActiveUrl, '&', '&&', [rfReplaceAll])); end; procedure TDemoForm.BeforeNavigate2(Sender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool); begin with Sender as TWebBrowser do if pDisp = DefaultInterface then ActiveUrl := URL; end; end. |
Re: FireFox im hintergrund öffnen und link kopieren
Na ja ich dachte halt, lassen wir es besser erstmal und machen es später nochmal, da ich ja ein Delphi Anfänger bin...
Achja, wofür ist der von dir gepostete Quelltext gut? :oops: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 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