Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1568to1572
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Problem mit API-Zugriff auf "Popup Window"

Problem mit API-Zugriff auf "Popup Window"
21.07.2017 13:37:35
Martin
Hallo liebe Excel-Community,
nach zwei Tagen Mißerfolg versuche ich heute hier mein Glück. Excel soll per API auf eine andere Anwendung zugreifen. Insgesamt klappt auch alles, nur bei einem "Popup Window" gelingt mir nicht der Zugriff auf die Untermenüs. Hier ein Screenshot des "Popup Window":
Userbild
Hier ein Screenshot aus WinSpy mit den Infos zu dem "Popup Window"
Userbild
Mit folgender API-Function ermittle ich erfolgreich das Handle des "Popup Window":

Private Declare Function FindWindow Lib "user32.dll" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
lngWindow = FindWindow("#32768", vbNullString)

Gewisse Informationen kann ich zum "Popup Window" auch abgreifen wie z.B. die Positionsdaten per Api-Function "GetWindowRect". Gerne würde ich einen Menüeintrag "auslösen", aber ich bekomme keinen Zugriff auf die Einträge. Auch mit WinSpy kann ich nicht auf die einzelnen Menüeinträge des Popup Windows zugreifen. Weiß von euch jemand Rat?
Viele Grüße
Martin

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit API-Zugriff auf "Popup Window"
21.07.2017 14:36:34
Martin
Hi Mullit,
ich finde es toll, dass du mich wiedererkannt hast ;-)
Wie du (vielleicht) siehst, versuche auch ich mich inzwischen ein wenig mit API (...ist für mich alles noch relativ neu). Ich bin noch immer mit meinem Excel-Programm unterwegs, welches aber mit einer anderen Software kommunizieren soll. Bislang hatte ich das per SendKeys gemacht, aber das hat nicht immer fehlerfrei geklappt. Per API habe ich jetzt die volle Kontrolle (...bis auf dieses blöde Popup Window).
Hast du eine Idee wie ich die Menüeinträge auslösen kann?
Viele Grüße
Martin
Anzeige
AW: Problem mit API-Zugriff auf "Popup Window"
21.07.2017 15:05:44
Martin
Hallo Mullit,
beim Durchstöbern des alten Threads habe ich gerade den Screenshot meines Excel-Kontextmenüs gesehen:
Userbild
Der dritte Eintrag von unten lautet "In TransTracker Nr. 264...suchen". Exakt diese Funktion läuft jetzt mit API wesentlich schneller und zuverlässiger. Und TransTracker ist genau jenes Programm, welches mich gerade vor die Schwierigkeiten mit dem "Popup Window" stellt.
Viele Grüße
Martin
AW: Problem mit API-Zugriff auf "Popup Window"
21.07.2017 16:27:22
Mullit
Hallo,
...war irgendwie so ne Ahnung ;-), hm ja, da müsstest Du an die ChildWindows, wahrscheinlich von der Button-Class, Deines Menüs ran, entweder mit den Apis EnumWindows oder FindWindowEx, das hab ich aber auch noch nicht so oft gemacht, vielleicht kannst Du Dich an diesen Links orientieren, und es passt das Bsp. im letzten Link (ist allerdings von Access aus...)...
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633574(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/ms633500(v=vs.85).aspx
http://access-programmers.co.uk/forums/showthread.php?t=195353#10
Gruß, Mullit
Anzeige
AW: Problem mit API-Zugriff auf "Popup Window"
21.07.2017 17:50:14
Martin
Hallo Mullit,
vielen Dank für deine Unterstützung. Das Verrückte an der Sache ist, dass keine ChildWindows vorhanden sind. Jegliche API-Function findet keinerlei untergeordnete Handle. Und auch WinSpy meint, dass in dem "Popup Window" nichts weiter vorhanden sei. Es werden keine Child Windows aufgelistet:
Userbild
Auch im Tree-View sind keine untergeordneten Elemente aufgeführt:
Userbild
Ich bin mit meinem Latein (mal wieder) am Ende. Wie würdest du an meiner Stelle jetzt weiter vorgehen?
Viele Grüße
Martin
Anzeige
AW: Problem mit API-Zugriff auf "Popup Window"
21.07.2017 18:24:56
Mullit
Hallo Martin,
tja war fast zu befürchten, dann könnte es ein Programm sein, daß bspw. wie Firefox i.d.Bez. nicht mit Apis angesprochen werden kann, ich fürchte da gibt's dann keine Möglichkeit, aber ich laß mal offen, falls Api-Spez. wie Nepumuk hier mal reingucken...
Gruß, Mullit
Vielen Dank, hoffen wir auf Nepumuks Hilfe ;-)
21.07.2017 20:32:51
Martin
Hallo Mullit,
ich danke dir für deine Hilfsbereitschaft. Vielleicht findet sich tatsächlich ein anderer API-Experte!
Viele Grüße
Martin
AW: Noch ein Versuch...
21.07.2017 22:34:11
Mullit
Hallo,
das könnte prinzipiell anders funktionieren, bei den Popupmenus werden die Buttons nicht als Childwindows aufgezeichnet, sondern Du müsstest mit GetMenuItemID das Control herausfinden und mit SendMessage oder PostMessage das Click-Event feuern, lies mal diese beiden Links quer, vielleicht wirds was...
http://www.visualbasicsource.net/redirectpage.html?http://www.visualbasicsource.net/VBTips/75.html
http://www.vbforums.com/showthread.php?649026-RESOLVED-Click-On-SubMenu
Gruß, Mullit
Anzeige
AW: Noch ein Versuch...
22.07.2017 02:06:48
Martin
Hallo Mullit,
ich will nicht ausschließen, dass ich einen Fehler mache. Aber ich denke eigentlich keinen Fehler gemacht zu haben: Schon in der Zeile "hMenu = GetMenu(Me.Hwnd)", in der ich "Me.Hwnd" durch die Handle-ID des "Popup Window" ersetzt habe, wird "hMenu" der Wert "0" zugewiesen und das Makro vorzeitig verlassen. Mit "SendMessage" und "PostMessage" arbeite ich bereits sehr viel, hier wäre alles sonnenklar. Der Knackpunkt ist "GetMenuItemID", da komme ich einfach nicht weiter und erhalte keine IDs der Menüeinträge. Irgendwie glaube ich, dass es diesmal wohl keine Lösung gibt :-(
So, nun habe ich lange genug herumprobiert. Jetzt ist es Zeit zum Schlafengehen...
Viele Grüße
Martin
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige