mabue88

C-Sharp - Internet-Explorer-Instanzen aus SHDocVW.ShellWindowsClass() auslesen

Hallo,

in einem C#-Programm muss ich die Instanzen der aktuell in Windows geöffneten Internet-Explorer einlesen.

Folgenden Code verwende ich bislang dafür:
static SHDocVw.InternetExplorer getIEWindows()
{
    // Anzahl der IE-Fenster ermitteln
    int anzahl_ie = 0;
    foreach (SHDocVw.InternetExplorer ie in new SHDocVw.ShellWindowsClass())
        anzahl_ie++;

    // Array für die Aufnahme der IE-Fenster mit Länge 0 anlegen
    SHDocVw.InternetExplorer ie_windows = new SHDocVw.InternetExplorer[anzahl_ie];

    int zaehler = 0;
    foreach (SHDocVw.InternetExplorer ie in new SHDocVw.ShellWindowsClass())
    {
        ie_windows[zaehler] = ie;
        zaehler++;
    }

    return ie_windows
} 

Der Code funktioniert soweit.
Aber ich habe mich gefragt, ob ich aus "SHDocVw.ShellWindowsClass()" nicht direkt nur die Internet Explorer-Fenster abfragen und diese direkt in ein Array schreiben kann?! Das mehrmalige Durchlaufen der "SHDocVw.ShellWindowsClass()" gefällt mir nicht so richtig...

Danke
mabue
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 237083

Url: https://administrator.de/forum/c-sharp-internet-explorer-instanzen-aus-shdocvw-shellwindowsclass-auslesen-237083.html

Ausgedruckt am: 06.06.2025 um 21:06 Uhr

colinardo
Lösung colinardo 03.05.2014 aktualisiert um 16:15:01 Uhr
Goto Top
Hallo mabue,
dann nehme anstatt eines statischen Arrays in dem du die Instanzen speicherst einfach ein dynamisches Array (z.B. eine ArrayList()) dem du die Instanzen direkt hinzufügen kannst ohne erst die Größe ermitteln zu müssen, dann benötigst du nur eine Schleife.

ArrayList ie_windows = new ArrayList();
und dann die Instanz innerhalb einer einzigen Schleife so zum Array hinzufügen:
ie_windows.Add(ie);

Eine Methode die direkt nur Handles von spezifischen Fenstern zurückgibt lässt sich mit den Win32 APIs machen: http://stackoverflow.com/questions/2238609/c-sharp-get-handles-to-all-w ...

Grüße Uwe
mabue88
mabue88 03.05.2014 um 16:22:05 Uhr
Goto Top
Hallo colinardo,

Volltreffer! Sowas habe ich gesucht! Danke!

Gruss
mabue