W aplikacji, nad którą obecnie pracuję, wymagane jest przeniesienie okna zewnętrznej aplikacji na pierwszy plan. Wywoływanie wywołań Win32 API, takich jak BringWindowToTop i SetForeground, nie działa przez cały czas. Wynika to z pewnych ograniczeń w systemie Windows XP. Zamiast tego chciałbym wysłać symulację kliknięcia myszą przycisku okna na pasku zadań, który - mam nadzieję - przeniesie okno na pierwszy plan. Czy ktoś wie, jak to jest możliwe?Wysyłanie kliknięcia myszą do przycisku na pasku zadań przy użyciu C#
Odpowiedz
Zapoznaj się z sekcją "Jak wykraść fokus na 2K/XP" pod numerem http://www.codeproject.com/KB/dialog/dlgboxtricks.aspx, ponieważ jest to dokładnie to, czego potrzebujesz. Nie pójdę do paska zadań, ponieważ pasek zadań może być ukryty lub po prostu go nie ma.
Jest to możliwe. Ale jest bardzo szkicowy. Twoja aplikacja może również zepsuć się z następną wersją systemu Windows, ponieważ jest nieudokumentowana. Musisz znaleźć uchwyt okna na pasku zadań, a następnie znaleźć uchwyt okna okna potomnego reprezentującego przycisk, a następnie wysłać komunikat WM_MOUSEDOWN (chyba).
Oto trochę na znalezieniu uchwyt okna z paska zadań:
FWIW, ograniczenia BringWindowToTop/SetForeground są tam, bo to irytujące, gdy okno kradnie skupić. To nie musi mieć znaczenia, jeśli pracujesz w środowisku korporacyjnym. Po prostu miej to na uwadze. :)
Użyłem tego w programie, w którym potrzebowałem symulować kliknięcia i ruchy myszą;
Szczerze mówiąc nigdy nie miałem problemu przynosząc okno na pierwszym planie na XP/Vista/2003/2000.
Musisz upewnić się, wykonaj następujące czynności:
- Sprawdź, czy IsIconic (zminimalizowane)
- Jeżeli nr 1 powoduje prawdziwe następnie wywołać ShowWindow przechodząc SW_RESTORE
- Następnie zadzwonić SetForegroundWindow
Nigdy nie miałem problemów, o których mógłbym myśleć, wykonując te czynności.
- 1. Uzyskuj współrzędne kliknięcia myszą na svg przy użyciu d3
- 2. Eksportowanie zadań do 'C przy użyciu DPI
- 3. Rozróżnianie kliknięcia myszą i kliknięcia myszą w wpf
- 4. Osadzanie na pasku zadań
- 5. Wyświetlanie formularza użytkownika programu Excel jako przycisku na pasku zadań
- 6. Symulowanie kliknięcia myszą w JavaScript
- 7. Vim: zmiana zachowania kliknięcia myszą
- 8. Wysyłanie wiadomości e-mail przy użyciu C#
- 9. C# Wysyłanie SMTP przy użyciu System.Threading
- 10. Emacsclient nie reaguje na kliknięcia myszą
- 11. iść do łączenia na kliknięcia przycisku - jquery
- 12. Odrzucanie kliknięcia myszą w TDbGrid.OnColumnMoved
- 13. Czy można oczekiwać zadań asynchronicznych podczas kliknięcia przycisku?
- 14. Skrobanie stron internetowych wymagające kliknięcia myszą?
- 15. Zdarzenia kliknięcia myszą (lub dotyk) na płótnie powodują zaznaczenie przy użyciu HTML5, Phonegap i Androida
- 16. Wysyłanie JSON na serwer przy użyciu jQuery
- 17. Pasek postępu Windows 7 na pasku zadań w C#?
- 18. Wysyłanie wiadomości do WhatsApp przy użyciu java
- 19. Wysyłanie JSON do PHP przy użyciu ajax
- 20. Jak wprowadzić alert JFrame na pasku zadań?
- 21. WinForms wyłącza podwójne kliknięcia i akceptuje wszystkie kliknięcia myszą?
- 22. Wysyłanie javamail przy użyciu Office365
- 23. MATLAB, jak uzyskać współrzędne kliknięcia myszą
- 24. Zmiana koloru tła przycisku paska zadań po naciśnięciu
- 25. Ponowne kolorowanie kształtu przy najechaniu myszą przy użyciu KineticJS
- 26. Kolor przycisku na pasku nawigacyjnym - iPhone
- 27. Zwiększenie powierzchni kliknięcia przycisku
- 28. Poruszanie myszą
- 29. Wykrywanie kliknięcia myszą w skrypcie bash
- 30. Używanie AutoIt do kliknięcia przycisku w oknie