Internet Explorer steuern
spacer
Autor Nachricht
LittleBen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 166

Win 7, Mac OS
Delphi 7
BeitragVerfasst: Mi 21.09.11 18:11 
Hallo,
um den Internet Explorer aus meinem Programm heraus zu starten benutze ich folgenden Code.
ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
procedure OpenIE(aURL: string);
var
IE: Variant;
WinHanlde: HWnd;
begin
if (VarIsEmpty(IE)) then
begin
IE:= CreateOleObject('InternetExplorer.Application');
IE.Visible:= true;
IE.Navigate(aURL);
IE.Quit;
end
else
begin
WinHanlde:= FindWindow('IEFrame', nil);
if (0 <> WinHanlde) then
begin
IE.Navigate(aURL);
SetForegroundWindow(WinHanlde);
end
else
ShowMessage('Can''t open IE !');
end;
end;
(www.swissdelphicente.../showcode.php?id=107) Nun will ich aber, dass nach dem laden der Seite, also NavigateComplete, der IE wieder geschlossen wird. Wie kann ich überprüfen, ob die Seite ganz geladen wurde? Hoffe, ihr könnt mir helfen!

Viele Grüße,
Benny
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 724
Erhaltene Danke: 53

Win XP professional, Win 7 Professional x64, Ubuntu
Delphi 5, Delphi 2005 Personal, Delphi 2006, Delphi XE, C++ Builder 5, PHP, SAP R/3
BeitragVerfasst: Mi 21.09.11 18:14 
Warte mal ganz kurz:
Welchen Sinn hat das denn, extra den Internet Explorer einzubinden, um eine Webseite aufzurufen, nur um das Ganze dann sofort wieder zu schliessen?

Willst du einfach nur eine URL aufrufen, um etwa ein PHP Script im Hintergrund zu triggern? Wenn ja, dann ginge das auch einfacher!

_________________
Delphi: XE - OS: Windows 7 Professional x64
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
LittleBen Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 166

Win 7, Mac OS
Delphi 7
BeitragVerfasst: Mi 21.09.11 18:17 
user profile iconHorschdware hat folgendes geschrieben Zum zitierten Posting springen:
Willst du einfach nur eine URL aufrufen, um etwa ein PHP Script im Hintergrund zu triggern? Wenn ja, dann ginge das auch einfacher!
Ja, genau. Aber wenn ich das anderst mache werden Administratorreche verlangt. Das will ich verhindern.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Moderator
Beiträge: 8118
Erhaltene Danke: 251

Win XP, Win 7
D7 PE, RAD Studio 2009 Professional
BeitragVerfasst: Mi 21.09.11 18:33 
Dann machst du was falsch. Man benötigt keine Administrator-Rechte, um auf eine Seite im Netz zuzugreifen. Das geht mit den Indy-Komponenten einfach so.

_________________
Oel ngati kameie.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 724
Erhaltene Danke: 53

Win XP professional, Win 7 Professional x64, Ubuntu
Delphi 5, Delphi 2005 Personal, Delphi 2006, Delphi XE, C++ Builder 5, PHP, SAP R/3
BeitragVerfasst: Mi 21.09.11 18:35 
Wie hast du das denn bisher (ohne IE) probiert?
Schau doch mal in die Suche, da gibt es schöne Beispiele, wie so etwas von anderen gelöst wurde
-> Suche in: Delphi-Forum.de URL AUFRUFEN
-> Suche in: Delphi-Forum.de INDY HTTP

_________________
Delphi: XE - OS: Windows 7 Professional x64
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
LittleBen Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 166

Win 7, Mac OS
Delphi 7
BeitragVerfasst: Mi 21.09.11 18:45 
Das Problem ist, das bei allen internen URL Aufrufen Admininistratorrechte benötigt werden oder die Firewall/Anti Viren Schutz anschlägt. Das Verzägert den Start...
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Moderator
Beiträge: 8118
Erhaltene Danke: 251

Win XP, Win 7
D7 PE, RAD Studio 2009 Professional
BeitragVerfasst: Mi 21.09.11 19:14 
Dann machst du was falsch, abgesehen evtl. von der Firewall-Warnung, die einem ein Gefühl von Sicherheit geben soll.

Ich rufe z.B. in meinem Player an einigen Stellen (teilweise auch im Hintergrund) Textdateien oder kleine PHP-Scripte im Netz auf, und bisher kam keine Rückmeldung von Virenscannern, oder Hinweise bzgl. Administrator-Rechte.

Und wenn du nicht willst, dass ggf. eine Firewall fragt, ob dein Programm ins Netz darf, dann stellt sich mir die Frage nach der Rechtmäßigkeit deines Vorhabens. :roll:

_________________
Oel ngati kameie.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
LittleBen Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 166

Win 7, Mac OS
Delphi 7
BeitragVerfasst: Mi 21.09.11 19:20 
AntiVir schlägt bei mir auch kein Alarm. Habe aber BullGuard, ein etwas besserer Scanner. Naja, dann werde ich es wohl doch mit Indy machen... Aber es sollte doch eigentlich nicht so schwer sein per Ole abzufragen, ob die aufgerufene Seite fertig geladen ist.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 15840
Erhaltene Danke: 741

XP, W7 x64 (Chrome, IE9, FF), Debian, (OSX 10.7)
RAD XE 2, Java (NB), C++, C# (VS 2010), JS/HTML, PHP, Lazarus
BeitragVerfasst: Mi 21.09.11 21:32 
user profile iconLittleBen hat folgendes geschrieben Zum zitierten Posting springen:
Aber es sollte doch eigentlich nicht so schwer sein per Ole abzufragen, ob die aufgerufene Seite fertig geladen ist.
Vielleicht damit:
www.swissdelphicente...showcode.php?id=2058

Aber eine saubere Lösung ist das absolut nicht...
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
LittleBen Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 166

Win 7, Mac OS
Delphi 7
BeitragVerfasst: Do 22.09.11 14:34 
Maaaaaan! Das ist so enfach...Um abzufragen, ob die aufgerufene Seite geladen wurde, muss nur die getan werden:
ausblenden Delphi-Quelltext markieren
1:
2:
while IE.Busy do
application.ProcessMessages
Gibt's da irgendwie ein Haken?
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 724
Erhaltene Danke: 53

Win XP professional, Win 7 Professional x64, Ubuntu
Delphi 5, Delphi 2005 Personal, Delphi 2006, Delphi XE, C++ Builder 5, PHP, SAP R/3
BeitragVerfasst: Do 22.09.11 15:02 
Netter Versuch ;-)

aber das wird nicht funktionieren.
Du hast hier lediglich eine Schleife, die solange "nichts" tut (ausser Nachrichten des Systems zu verarbeiten), bis der IE "fertig" ist. Ob er dabei die Seite erfolgreich geladen hat oder wegen falscher URL / Server down / keine Verbindung abbricht ist dabei dann egal.

_________________
Delphi: XE - OS: Windows 7 Professional x64
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic starofftopic star
Beiträge: 1671
Erhaltene Danke: 14

Windows Vista Home Premium 32Bit
RAD Studio 2009 Pro
BeitragVerfasst: Do 22.09.11 15:08 
Indy Beispiel:

ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
var
http: TIdHTTP;
html: String;
begin
http := TIdHTTP.Create(nil);
try
html := http.Get('http://www.google.de/q=Suchwort', s);
finally
http.free;
end;
end;


Wenn dabei dein Viren-Scanner reinfunkt hast du ihn wohl falsch konfiguriert (zu aggressiv) oder es ist sinnvoll dich von ihm zu trennen...
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
LittleBen Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 166

Win 7, Mac OS
Delphi 7
BeitragVerfasst: Mi 05.10.11 20:20 
Heute habe ich mich nochmal mit diesem Thema beschäfftigt (da ich diese Funktion wieder brauche) und dabei musste ich festellen, dass der Internet Explorer manchmal abstürzt und Win7 die Fehlermeldung "Internet Explorer 8 Funktioniert nicht mehr" ausgibt. Woran kann das liegen, wenn die Funktion
ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
procedure OpenIE(aUrl: string);
var IE: Variant;
WinHanlde: HWnd;
begin
if (VarIsEmpty(IE)) then
begin
IE:= CreateOleObject('InternetExplorer.Application'); // Hier stürzt er dann ab
IE.Navigate2(aUrl);

while IE.Busy do // Funktioniert wunderbar!
Application.ProcessMessages;
IE.Quit;
end
else
begin
WinHanlde:= FindWindow('IEFrame', nil);
if (0 <> WinHanlde) then
begin
IE.Navigate2(aUrl);
SetForegroundWindow(WinHanlde);
end
else
ShowMessage('Can''t open IE !');
end;
end;
mehrmals im Programm aufgerufen wird.

Hoffe, dass jemand helfen kann!
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Boldar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic starofftopic star
Beiträge: 1420
Erhaltene Danke: 46

Win7 Enterprise 64bit, Win XP SP2
Turbo Delphi
BeitragVerfasst: Mi 05.10.11 21:11 
Also nur mal nebenbei: ein programm, was Internet-Explorer benutzt, um an der Firewall vorbeizukommen, halte ich nicht für vertrauenerweckend.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
LittleBen Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 166

Win 7, Mac OS
Delphi 7
BeitragVerfasst: Sa 08.10.11 10:52 
Hab das Ganze jetzt doch mit Indy gelöst.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
home home