Frage

In einer Anwendung, die ich gerade in Arbeit habe, eine Voraussetzung ist, um zu bringen ein Fenster von einer externen Anwendung in den Vordergrund.Machen Win32-API-Aufrufe wie BringWindowToTop und SetForeground Fenster nicht die ganze Zeit arbeiten.Dies ist aufgrund einiger Einschränkungen in Windows XP.Was ich tun möchte, ist statt dessen senden Sie die Maus simulieren klicken Sie auf das Fenster auf der Taskleiste, die ich hoffe, wird das Fenster auf der Vorderseite.Weiß jemand, wie das möglich ist?

War es hilfreich?

Lösung

Check-out im Abschnitt "Wie zu stehlen Fokus auf 2K/XP" auf http://www.codeproject.com/KB/dialog/dlgboxtricks.aspx, wie dieses ist genau das, was Sie brauchen.Ich würde nicht gehen der Taskleiste route wie die Taskleiste ausgeblendet werden kann oder einfach nicht da.

Andere Tipps

Es ist möglich.Aber es ist extrem lückenhaft.Ihre Anwendung kann auch den Bruch mit der nächsten version von Windows, da es nicht dokumentiert.Was Sie tun müssen, ist das Fenster-handle der Taskleiste, dann finden Sie das Fenster-handle des Kindes Fenster repräsentieren Sie die-Taste, dann senden Sie es ein WM_MOUSEDOWN (glaube ich) angezeigt.

Hier ist ein bisschen auf der Suche nach dem Fenster Griff auf der Taskleiste:

http://www.codeproject.com/

FWIW, die Einschränkungen auf BringWindowToTop/SetForeground gibt es, weil es irritierend, wenn ein Fenster Stiehlt Fokus.Das kann es nicht egal, wenn Sie arbeiten auf einem unternehmerischen Umfeld.Nur halten Sie es in Geist.:)

Ich habe diese in ein Programm, wo ich brauchte, um zu simulieren, Klicks und Maus-Bewegungen;

Global-Maus-und Tastatur-Bibliothek

Um ehrlich zu sein, ich hatte noch nie ein Problem bringt, ein Fenster in den Vordergrund, die auf XP/Vista/2003/2000.

Sie müssen sicherstellen, dass Sie den folgenden:

  1. Check if IsIconic (minimiert)
  2. Wenn #1 Ergebnis true, dann rufen Sie ShowWindow vorbei SW_RESTORE
  3. Dann rufen Sie SetForegroundWindow

Ich hatte noch nie Probleme, die ich denken kann, tut es mit diesen Schritten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top