Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Fokus auf Deskband-Fenster setzen (https://www.delphipraxis.net/141708-fokus-auf-deskband-fenster-setzen.html)

mh166 14. Okt 2009 14:38


Fokus auf Deskband-Fenster setzen
 
Hallo,

ich hab mal wieder n Problem mit meinem Deskband. :mrgreen:

Und zwar hab ich dem jetzt nen Hotkey spendiert: drückt man AltGr+O, dann wird per STRG+C der aktuell markierte Text in die Zwischenablage kopiert und anschließend im Deskband weiter verarbeitet. Diese Infos werden dann ja in einem kleinen Formular angezeigt, dass ich erzeuge.

Nun sollte man ja annehmen, dass eigentlich nix einfacher ist, als den Fokus auf das Fenster zu setzen. Aber weit gefehlt... weder mit QR.SetFocus noch mit Windows.SetFocus(QR.Handle) funktionierts (QR enthält die Instanz von meinem Infofenster, TfrmQueryResult). Ich bekomm auch nicht den Fokus auf das Deskband selbst gesetzt. Im Form vom Deskband Self.SetFocus aufzurufen bringt nichts. Ich kann noch nicht einmal mit Windows.SetFocus(FindWindow('Shell_TrayWnd','')); den Fokus auf die Taskbar setzen.

Das Fenster, von dem aus ich den Hotkey aktiviert habe, behält ständig weiterhin den Fokus. Ich muss wirklich erst mit der Maus auf mein Info-Fenster oder mein Deskband klicken, damit sich das ändert. Ich bin also mal wieder planlos. :? Vielleicht habt ihr ja ne Idee. :)


mfg, mh166

mh166 19. Okt 2009 21:37

Re: Fokus auf Deskband-Fenster setzen
 
Hat wirklich keine ne Idee? Mittlerweile hab ich auch schon probiert die Maus zu positionieren und nen Klick zu simulieren — Leider genauso erfolgreich wie die anderen Versuche bisher.

Wäre euch echt für jeden Vorschlag dankbar!

mfg, mh166

Tom 19. Okt 2009 21:52

Re: Fokus auf Deskband-Fenster setzen
 
Ich habe keine Ahnung ob es Dir helfen wird, aber ich hatte ein ähnliches Problem. Dieses löste sich mit
Delphi-Quellcode:
ActiveControl := nil;
vor dem SetFocus in Luft auf. Die Methode SetFocus macht nichts, solange das zu fokusierende Steuerelement das aktive ist.

mh166 20. Okt 2009 19:54

Re: Fokus auf Deskband-Fenster setzen
 
Habs probiert, aber funktioniert leider nich. Das Problem is aber, dass das Fenster nicht den Fokus bekommt. Ich hab ja ein beliebiges Fenster aktiv, drücke AltGr+O und dann reagiert mein Programm auf den Hotkey, indem es Daten abruft und anschließend in einem neuen Fenster anzeigt. Funktioniert auch — bis auf die Tatsache, dass das Fenster keinen Fokus bekommt ... :?

mfg, mh166

Apollonius 20. Okt 2009 19:58

Re: Fokus auf Deskband-Fenster setzen
 
Versuche mal MSDN-Library durchsuchenSetForegroundWindow. In der Vergangenheit gab es damit eine Menge Ärger, weil Programme sich in den Vordergrund gedrängelt haben, aber nach dem Drücken eines Hotkeys solltest du das dürfen.

mh166 20. Okt 2009 21:54

Re: Fokus auf Deskband-Fenster setzen
 
You made my day. :) In der Tat wird jetzt eeeendlich mal mein Fenster in den Vordergrund gebracht. Danke dir! :thumb:

mfg, mh166


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz