Einzelnen Beitrag anzeigen

Nimmersatt

Registriert seit: 14. Feb 2014
86 Beiträge
 
#14

AW: Sendmessage an Dialogfenster

  Alt 17. Feb 2014, 22:05
Hallo Jänicke,

Danke für die Info, diese werde ich mal testen.
Vielleicht funktioniert diese Option ja.

Aber vielleicht gibt es ja doch einen Weg, um dieses Problem innerhalb von Delphi zu lösen, wie die zwei Beiträge hoffen lassen.

Hallo matsch,

soweit ich weiss, kann man das Symbol nicht ausblenden. Du kannst Dir aber sehr einfach ein eigenes ExpressClickYes bauen (Dazu benötigst Du die API-Funktionen FindWindow und SendMessage), bzw. die Funktionalität in direkt in Deine Anwendung integrieren (z.B. in einem Hintergrundthread, der in der Main-methode angestoßen wird). Bei einem eigenen Programm kannst Du selbst bestimmten, ob und falls wie es sichtbar ist, oder nicht.


Hallo Rainbird,

ich versuche gerade so einen autoatischen "Klick" in mein Programm einzubauen. Es klappt alles auch wunderbar, nur habe ich beim letzten Schritt ein Problem. Der Versuch den Button "Erteilen" zu drücken passiert einfach nichts. Die schritte vorher funktionieren, dh. es ist alles korrekt ausgewählt (Fenster bleibt ja erstmal so stehen). Das vorher ermittelte Button Handle stimmt aber (mit WinSpy überprüft). Hier mal mein Ablauf:
hwndCheckbox = Checkbox, die erstmal aktiviert werden muss, um die gewünschte Zeit auswählen zu können
hwndCombobox = Combobox mit Zeitangabe
hwndButton = Handle des Buttons "Erteilen", welcher den Zugriff erlaubt
hWnd = Handle des kleinen Outlook Fensters (Zugriff gewähren?)

C#-Code:
PostMessage(hWnd, WM_SETFOCUS, 0, 0);
PostMessage(hwndCheckbox, WM_SETFOCUS, 0, 0);
PostMessage(hwndCheckbox, WM_KEYDOWN, VK_SPACE, 0);
PostMessage(hwndCheckbox, WM_KEYUP, VK_SPACE, 0xC0000000);
PostMessage(hwndCombobox, WM_KEYDOWN, VK_DOWN, 0);
PostMessage(hwndCombobox, WM_KEYUP, VK_DOWN, 0xC0000000);
PostMessage(hwndCombobox, WM_KEYDOWN, VK_DOWN, 0);
PostMessage(hwndCombobox, WM_KEYUP, VK_DOWN, 0xC0000000);
PostMessage(hwndCombobox, WM_KEYDOWN, VK_DOWN, 0);
PostMessage(hwndCombobox, WM_KEYUP, VK_DOWN, 0xC0000000);
PostMessage(hwndButton, WM_SETFOCUS, 0, 0);
PostMessage(hwndButton, WM_KEYDOWN, VK_SPACE, 0);
PostMessage(hwndButton, WM_KEYUP, VK_SPACE, 0xC0000000);

Ist irgendwas in meinem Ablauf falsch? Ich habe auch schon SendMessage probiert, aber auch damit wird der Button nicht gedrückt.

Quelle
http://www.mycsharp.de/wbb2/thread.php?threadid=42888
  Mit Zitat antworten Zitat