Welche Seite ist im IE geöffnet?
-
Hallo,
gibt es eine Möglichkeit, herauszubekommen, welche Seite gerade im IE geöffnet ist?
Habe schon mal gesucht, und irgendwas mit hooks gefunden.
Funktioniert das damit?
Gruß
-
Hallo
wie sollen wir dir sagen, ob etwas funktioniert, wenn du nicht sagst was genau? (Link?)
Mit Hooks kann man viel machen. Ist aber eine Sache der WinAPI, also solltest du in diesem Subforum nachschauen.bis bald
akari
-
Also noch mal langsam,
mein Programm soll alle paar Sekunden schauen, ob der IE geöffnet ist, und wenn ja welche Seite gerade geöffnet ist.
Mit der Überprüfung ob offen oder nicht, das habe ich schon. Was ich jetzt noch bräuchte, wäre welche Seite gerade geöffnet ist.
Habe schon mal mit Spy++ geschaut. Das entsprechende Feld im IE heißt Edit. Kann ich irgendwie auf das Feld zugreifen?
Das mit den Hooks war nur eine Frage, weil ich auf irgendeiner Seite gesehen hatte, das die mit Hooks den IE angezapt haben.
Grüße
-
Hallo
das kannst du grundsätzlich mit FindWindow() machen. Du hast ja den Namen des Controls, und bekommst dann das Handle.
Aber Achtung!
- du must dich durch die Control-Hierarchie des Explorer vom Fenster selber bis zum Edit durcharbeiten.
- das Handle ist ein WinAPI-Edit, kein TEdit. Du must dann auch mit WinAPI-Funktionen den Text des Control auslesen.
- du siehst das das alles WinAPI-Sachen sind. Also noch mal : las dich ins WinAPI-Subforum verschieben, und such dort erstmal nach FindWindowbis bald
akari
-
-
Also, habe nochmal ein bisschen im Forum gesucht.
Habe folgenden Quellcode gefunden, und umgeschrieben auf den IE.
HWND hwndForm = FindWindow("IEFRAME",0); HWND hwndEdit1 = FindWindowEx(hwndForm,0,"Edit",0); HWND hwndEdit2 = FindWindowEx(hwndForm,hwndEdit1,0,0);Leider bekomme ich immer bei der Abfrage auf hwndEdit1 eine 0 raus, und bei hwndEdit2 irgendwas anderes. Hierbei ist aber Egal ob der IE offen ist oder nicht.
Weiß vielleicht noch jemand wo der Fehler liegt?
Gruß
-
Dieser Thread wurde von Moderator/in Jansen aus dem Forum VCL/CLX (Borland C++ Builder) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
#include <iostream> using namespace std; #include <string> #include <windows.h> void GetURL(char *titel) { //char * titel = "\1:blank - Microsoft Internet Explorer"; char buffer[1256]; HWND child; HWND ie; if(ie = ::FindWindow("IEFrame",titel)) { if(child = ::FindWindowEx(ie,0,"WorkerW",0)) { if(child = ::FindWindowEx(child,0,"ReBarWindow32",0)) { if(child = ::FindWindowEx(child,0,"ComboBoxEx32",0)) { ::SendMessage(child,WM_GETTEXT,255,(long)&buffer[0]); char * tmp = &buffer[0]; //AfxMessageBox(tmp); cout<<tmp<<endl; } } } } } //Quellcode BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam) { static char cbuff[256]="\0"; static char strClass[200]; static DWORD dwPID=0; // get window class name ::GetClassName(hwnd, strClass, 200); // get pid ::GetWindowThreadProcessId(hwnd, &dwPID); // get caption ::GetWindowText(hwnd, cbuff, sizeof(cbuff)); //cout<<cbuff<<endl; // buff.Format("%s",cbuff); // In buff stehen nun alle offnen Fenster drin // Du musst nun einfach die Rausfiltern die MIE oder halt Opera // Im Titel haben // mit if und find arbeiten GetURL(cbuff); return true; } int main() { // Der Aufruf der Callback Funktion EnumChildWindows(GetDesktopWindow(),EnumWindowsProc, NULL); system("pause"); }
-
diese frage war schon mal da... per suche erfährst du vielleicht mehr