AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi FireFox im hintergrund öffnen und link kopieren
Thema durchsuchen
Ansicht
Themen-Optionen

FireFox im hintergrund öffnen und link kopieren

Ein Thema von 0NyX · begonnen am 10. Okt 2007 · letzter Beitrag vom 16. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von 0NyX
0NyX

Registriert seit: 13. Aug 2007
67 Beiträge
 
#1

FireFox im hintergrund öffnen und link kopieren

  Alt 10. Okt 2007, 10:02
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
"Der Computer rechnet mit allem, nur nicht mit seinem Nutzer!"
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#2

Re: FireFox im hintergrund öffnen und link kopieren

  Alt 10. Okt 2007, 10:14
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.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
Benutzerbild von 0NyX
0NyX

Registriert seit: 13. Aug 2007
67 Beiträge
 
#3

Re: FireFox im hintergrund öffnen und link kopieren

  Alt 10. Okt 2007, 10:41
Zitat von OregonGhost:
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.
Vielen Dank für deine rasche Antwort, nur leider komm ich damit nicht wirklich weiter =(
Ich bin ein totaler Anfänger in der Delphi Programmierung, also habe noch nicht so viel Ahnung...
"Der Computer rechnet mit allem, nur nicht mit seinem Nutzer!"
  Mit Zitat antworten Zitat
Benutzerbild von Aurelius
Aurelius

Registriert seit: 29. Jan 2007
Ort: Erfurt
753 Beiträge
 
Delphi 7 Personal
 
#4

Re: FireFox im hintergrund öffnen und link kopieren

  Alt 10. Okt 2007, 10:55
DAnn nutze die Hilfe mit den von Ghost vorgeschlagenen Suchbegriffen. Hier findest du bestimmt was
Jonas
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: FireFox im hintergrund öffnen und link kopieren

  Alt 10. Okt 2007, 12:42
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
  Mit Zitat antworten Zitat
Benutzerbild von 0NyX
0NyX

Registriert seit: 13. Aug 2007
67 Beiträge
 
#6

Re: FireFox im hintergrund öffnen und link kopieren

  Alt 10. Okt 2007, 13:04
Zitat von marabu:
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
Vielen Dank für die Antwort

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  <input type="Button" onclick="launchDownloadURL('%31%63%62%39%31%37%61%64%31%65%30%62%65%61%61%39', '0')" value="Download" /> aber wenn man drauf klickt erscheint in der Adressenzeile die richtige URL!

Vielen Dank für eure Hilfe!
"Der Computer rechnet mit allem, nur nicht mit seinem Nutzer!"
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: FireFox im hintergrund öffnen und link kopieren

  Alt 10. Okt 2007, 14:36
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.
  Mit Zitat antworten Zitat
Benutzerbild von 0NyX
0NyX

Registriert seit: 13. Aug 2007
67 Beiträge
 
#8

Re: FireFox im hintergrund öffnen und link kopieren

  Alt 16. Okt 2007, 14:44
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!
"Der Computer rechnet mit allem, nur nicht mit seinem Nutzer!"
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: FireFox im hintergrund öffnen und link kopieren

  Alt 16. Okt 2007, 16:07
Hallo,

wer wird denn gleich aufgeben?

Delphi-Quellcode:
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.
Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von 0NyX
0NyX

Registriert seit: 13. Aug 2007
67 Beiträge
 
#10

Re: FireFox im hintergrund öffnen und link kopieren

  Alt 16. Okt 2007, 18:04
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?
"Der Computer rechnet mit allem, nur nicht mit seinem Nutzer!"
  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