Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi IE fernsteuern - Mein Code geht unter IE7 nichtmehr (https://www.delphipraxis.net/84060-ie-fernsteuern-mein-code-geht-unter-ie7-nichtmehr.html)

snapman 10. Jan 2007 19:09


IE fernsteuern - Mein Code geht unter IE7 nichtmehr
 
Hallo,

ich habe hier einen Code um den IE6 fernzusteuern, der auch sehr gut funktioniert:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var IEHandle, AdressCB: HWND;
    buffer: array[0..MAX_PATH] of char;
begin
WinExec('C:\Programme\Internet Explorer\iexplore.exe',SW_SHOW);
sleep(400);
IEHandle := FindWindow('IEFrame', nil);
AdressCB := FindWindowEx(IEHandle, 0, 'WorkerW', nil);
AdressCB := FindWindowEx(AdressCB, 0, 'ReBarWindow32', nil);
AdressCB := FindWindowEx(AdressCB, 0, 'ComboBoxEx32', nil);

AdressCB :=FindWindowEx(AdressCB, 0, 'ComboBox', 0);
AdressCB :=FindWindowEx(AdressCB, 0, 'Edit', 0);

SendMessage(AdressCB, WM_SETTEXT, 0, Integer(PChar('www.freemail.de')));

SendMessage(AdressCB, WM_SETFOCUS, 0, 0);
SendMessage(AdressCB, WM_KEYDOWN, VK_RETURN,0 );
SendMessage(AdressCB, WM_KEYUP, VK_RETURN, 0);
end;
Allerdings geht das Ganze beim IE7 nichtmehr (bis auf das Starten der Anwendung)!
Kann mir hier jemand weiterhelfen?

Wozu brauch ich das ganze? Soll für eine Demo sein, die zeigen soll wie einfach das Windows Nachrichtensystem missbraucht werden kann.
(z.b. mit SW_HIDE starten und dann pers. Daten senden durch die Firewall)
Da unter Vista der IE7 Standard ist, sollte es hier eben auch laufen.

Bernhard Geyer 10. Jan 2007 19:59

Re: IE fernsteuern - Mein Code geht unter IE7 nichtmehr
 
Wenn es so einfach ist mußt du "nur" die neuen Windows-Klassennamen herausfinden. z.B. WinSpy sollte dir hier sehr gut Hilfe leisten.

Mal schauen wie du die Vista-Firewall damit bei aktiven User Account Control überlisten willst (Ich hoffe doch das änderungen dadurch geschützt sind).

snapman 10. Jan 2007 20:06

Re: IE fernsteuern - Mein Code geht unter IE7 nichtmehr
 
Zitat:

Zitat von Bernhard Geyer
Wenn es so einfach ist mußt du "nur" die neuen Windows-Klassennamen herausfinden. z.B. WinSpy sollte dir hier sehr gut Hilfe leisten.

Mal schauen wie du die Vista-Firewall damit bei aktiven User Account Control überlisten willst (Ich hoffe doch das änderungen dadurch geschützt sind).

Die VistaFirewall muss man in der StandardKonfiguration garnicht überlisten.
ALLES nach aussen hin ist erlaubt.

Mir gehts nur um die (neue) erweiterte Konfiguration wo man auch Verbindungen nach aussen hin blocken kann.
Das ist zwar so versteckt und so fuckelig gemacht das es nur 0,1% der User nutzen werden, aber eben auf diese Art auch leicht zu umgehen.

toms 10. Jan 2007 20:32

Re: IE fernsteuern - Mein Code geht unter IE7 nichtmehr
 
Warum machst du es nicht so?

Delphi-Quellcode:
var
  IE: OleVariant;
begin
    IE := CreateOleObject('InternetExplorer.Application');
    IE.Visible := True;
    IE.Navigate('www.freemail.de');
end;

JasonDX 10. Jan 2007 20:38

Re: IE fernsteuern - Mein Code geht unter IE7 nichtmehr
 
Zitat:

Zitat von toms
Warum machst du es nicht so?

Delphi-Quellcode:
var
  IE: OleVariant;
begin
    IE := CreateOleObject('InternetExplorer.Application');
    IE.Visible := True;
    IE.Navigate('www.freemail.de');
end;

Weil das nicht sinn der Sache ist. Die Daten muessen im Prozess des Browsers (bspw. Dll-Injection) rausgesendet werden. Damit wird der Browser sozusagen als Portal ins Internet vorbei an der Firewall missbraucht. Ist rechtlich aber fragwuerdig.

greetz
Mike

toms 10. Jan 2007 20:52

Re: IE fernsteuern - Mein Code geht unter IE7 nichtmehr
 
Zitat:

Zitat von Bernhard Geyer
Wenn es so einfach ist mußt du "nur" die neuen Windows-Klassennamen herausfinden. z.B. WinSpy sollte dir hier sehr gut Hilfe leisten.

Genau. Die Fenster Struktur hat nämlich im IE 7 geändert.

snapman 10. Jan 2007 21:10

Re: IE fernsteuern - Mein Code geht unter IE7 nichtmehr
 
Zitat:

Zitat von toms
Zitat:

Zitat von Bernhard Geyer
Wenn es so einfach ist mußt du "nur" die neuen Windows-Klassennamen herausfinden. z.B. WinSpy sollte dir hier sehr gut Hilfe leisten.

Genau. Die Fenster Struktur hat nämlich im IE 7 geändert.

Wo bekomm ich WinSpy?

toms 10. Jan 2007 21:12

Re: IE fernsteuern - Mein Code geht unter IE7 nichtmehr
 
Zitat:

Zitat von snapman
Wo bekomm ich WinSpy?

Hier

snapman 10. Jan 2007 21:20

Re: IE fernsteuern - Mein Code geht unter IE7 nichtmehr
 
Zitat:

Zitat von JasonDX
Zitat:

Zitat von toms
Warum machst du es nicht so?

Delphi-Quellcode:
var
  IE: OleVariant;
begin
    IE := CreateOleObject('InternetExplorer.Application');
    IE.Visible := True;
    IE.Navigate('www.freemail.de');
end;

Weil das nicht sinn der Sache ist. Die Daten muessen im Prozess des Browsers (bspw. Dll-Injection) rausgesendet werden. Damit wird der Browser sozusagen als Portal ins Internet vorbei an der Firewall missbraucht. Ist rechtlich aber fragwuerdig.

greetz
Mike

Das ist nicht ganz korrekt! Die Windows Firewall ist SO mies, die lässt sich sogar mit dem OLE Code umgehen!
Gibt allerdings noch ein problem, wenn ich den Code so übernehme, gehen 2 Fenster offen, wenn ich

IE := CreateOleObject('InternetExplorer.Application');
IE.Navigate('www.freemail.de');

es so mache nur 1 aber es ist halt sichbar...wenn ich visible auf false setze geht ein sichtbares und scheinbar 1 unsichtbares auf..
frage nun: wie komm ich ohne das sichtbare aus?

snapman 10. Jan 2007 21:26

Re: IE fernsteuern - Mein Code geht unter IE7 nichtmehr
 
Liste der Anhänge anzeigen (Anzahl: 1)
sieht für mich ziemlich gleich aus (zu den Handles oben), oder seht ihr nen unterschied?

toms 11. Jan 2007 06:55

Re: IE fernsteuern - Mein Code geht unter IE7 nichtmehr
 
Zitat:

Zitat von snapman
sieht für mich ziemlich gleich aus (zu den Handles oben), oder seht ihr nen unterschied?

Schau nochmals genau hin. Die Struktur ist nicht gleich.

IEFrame
-WorkerW
--ReBarWindow32
---Address Band Root
----ComboBoxEx32
-----ComboBox
------Edit

Selektioniere im WinSpy mal Edit "www.freemail.de" und klicke in der Toolbar auf "Code".
Dann wird der Findwindow Code automatisch erzeugt.

richard_boderich 11. Jan 2007 08:29

Re: IE fernsteuern - Mein Code geht unter IE7 nichtmehr
 
wofuer steht den rebar32 und welche combobox ist gemeint? kann man damit die sicherheiteinstellungen aendern?
ich habe mir dazu ein programm geschrieben das auf tastendruck die ie zone fuer das internet zwischen hoch und mittel wechseln kann. mein problem ist jedoch alle offenen ie instanzen bzw. fenster zu benachrichtigen. es geht mit meiner methode zwar aber ich muss dazu immer ein neues ie fenster oeffnen.

richard

snapman 11. Jan 2007 13:03

Re: IE fernsteuern - Mein Code geht unter IE7 nichtmehr
 
Zitat:

Zitat von toms
Zitat:

Zitat von snapman
sieht für mich ziemlich gleich aus (zu den Handles oben), oder seht ihr nen unterschied?

Schau nochmals genau hin. Die Struktur ist nicht gleich.

IEFrame
-WorkerW
--ReBarWindow32
---Address Band Root
----ComboBoxEx32
-----ComboBox
------Edit

Selektioniere im WinSpy mal Edit "www.freemail.de" und klicke in der Toolbar auf "Code".
Dann wird der Findwindow Code automatisch erzeugt.

Dank dir!
so geht es nun auch unter Vista (der Startpfad ist natürlich ggf. zu ändern):

Delphi-Quellcode:
WinExec('C:\Program Files (x86)\Internet Explorer\iexplore.exe',SW_SHOW);
sleep(1000);

  wnd:= FindWindow('IEFrame', nil);
  wnd := FindWindowEx(wnd, 0, 'WorkerW', nil);
  wnd := FindWindowEx(wnd, 0, 'ReBarWindow32', nil);
  wnd := FindWindowEx(wnd, 0, 'Address Band Root', nil);
  wnd := FindWindowEx(wnd, 0, 'ComboBoxEx32', nil);
  wnd := FindWindowEx(wnd, 0, 'ComboBox', nil);
  wnd := FindWindowEx(wnd, 0, 'Edit', nil);

SendMessage(wnd, WM_SETTEXT, 0, Integer(PChar('www.freemail.de')));

SendMessage(wnd, WM_SETFOCUS, 0, 0);
SendMessage(wnd, WM_KEYDOWN, VK_RETURN,0 );
SendMessage(wnd, WM_KEYUP, VK_RETURN, 0);

snapman 11. Jan 2007 22:10

Re: IE fernsteuern - Mein Code geht unter IE7 nichtmehr
 
Gibts wohl auch ne möglichkeit, formularfelder ausfüllen zu lassen und abzuschicken?

MrKnogge 12. Jan 2007 07:04

Re: IE fernsteuern - Mein Code geht unter IE7 nichtmehr
 
Pro Thread bitte immer nur eine Frage, sonst wird alles zu unübersichtlich.
Und zum Thema Formulare ausfüllen, lohnt es sich auf jeden Fall die Suche zu verwenden.

Gruß


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