Laden...

Finden eines Fensters und Rufen von Events

Erstellt von And.Wolf vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.243 Views
A
And.Wolf Themenstarter:in
65 Beiträge seit 2010
vor 13 Jahren
Finden eines Fensters und Rufen von Events

Hallo,

ich würde mir gerne an einer bestimmten stelle ein Fenster suchen und in diesem Fenster erst eine Checkbox anhacken.
Dann in einer ComboBox einen Wert ändern und dann auf einen Button klicken.

Das Fenster kommt nicht von mir sondern wird von Outlook geöffnet.

Habt ihr eine Idee was ich mir dort anschauen sollte?

Danke & Gruß
Andreas

1.378 Beiträge seit 2006
vor 13 Jahren

Du versuchst nicht zufällig das hier umzusetzen oder?

Lg XXX

A
And.Wolf Themenstarter:in
65 Beiträge seit 2010
vor 13 Jahren

Ja genau das ^^

1.044 Beiträge seit 2008
vor 13 Jahren

Hallo And.Wolf,

die Frage wurde schon mehrmals bei uns im Forum besprochen. Verwende doch bitte die Forensuche.

Dir bleibst nichts anderes übrig, als zur Win32-API zu greifen. Mit SendMessage musst du dann die einzelnen Nachrichten manuell zuschicken. Das funktioniert aber auch nur bei nativen Anwendungen. Bei .NET-Anwendungen hingegen musst du mit dem UIAutomationProvider arbeiten.

Wenn du Glück hast, bietet Outlook eine API an. Such mal, vielleicht wirst du fündig.

zero_x

A
And.Wolf Themenstarter:in
65 Beiträge seit 2010
vor 13 Jahren

Hallo,

ich habe es nun fast geschafft.

Ich habe folgenden Code:


public void CloseOutlookWindow()
        {
            IntPtr winHdw = IntPtr.Zero;
            while(winHdw == IntPtr.Zero)
                winHdw = FindWindow("#32770", MainWindowTitle);
            if (winHdw != IntPtr.Zero) 
            {
                IntPtr tmpCheckBox = FindWindowEx(winHdw, IntPtr.Zero, WC_Button, btnCheckBoxTitle);
                if (tmpCheckBox != IntPtr.Zero)
                {
                    SendMessage(tmpCheckBox,(uint)WM.BM_CLICK,0,0);
                }
                IntPtr tmpButton = FindWindowEx(winHdw, IntPtr.Zero, WC_Button, btnErteilenTitle);
                if (tmpButton != IntPtr.Zero)
                {
                    SendMessage(tmpButton,(uint)WM.BM_CLICK,0,0);
                }
            }
        }


Der erste Button button erhält seine Nachricht und verarbeitet diese auch wie erwartet.
Der zweite Button wird gefunden verarbeitet aber die Nachricht nicht.

Woran kann das noch liegen?

Danke & Gruß
Andreas