mabue88
Goto Top

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

Content-Key: 237083

Url: https://administrator.de/contentid/237083

Printed on: April 19, 2024 at 08:04 o'clock

Member: colinardo
Solution colinardo May 03, 2014 updated at 14:15:01 (UTC)
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
Member: mabue88
mabue88 May 03, 2014 at 14:22:05 (UTC)
Goto Top
Hallo colinardo,

Volltreffer! Sowas habe ich gesucht! Danke!

Gruss
mabue