AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

HotKey und SetFocus

Ein Thema von Nils_13 · begonnen am 2. Mär 2008 · letzter Beitrag vom 16. Mär 2008
Antwort Antwort
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

HotKey und SetFocus

  Alt 2. Mär 2008, 11:47
Hi,

mein Programm ist bei Start unsichtbar. Wenn ich einen HotKey drücke, soll das Programm erscheinen und der Fokus auf das Programm gerichtet sein. Wenn ich das Programm aus Delphi heraus ausführe und den entsprechenden HotKey drücke, wird es fokusiert. Mache ich es hingegen via Explorer/Autostart, ist das Fenster nicht fokusiert. Eine Idee warum ?
Delphi-Quellcode:
procedure TfrmMain.FormShow(Sender: TObject);
begin
  ShowWindow(Application.Handle, SW_HIDE);
end;

procedure TfrmMain.WMHotKey(var Message : TMessage);
begin
  if Message.wParam = HotKeyID then
    if Visible then
      Hide
    else
    begin
      Show;
      SetFocus;
    end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von TonyR
TonyR

Registriert seit: 17. Jun 2006
Ort: Bautzen
503 Beiträge
 
FreePascal / Lazarus
 
#2

Re: HotKey und SetFocus

  Alt 2. Mär 2008, 12:45
nicht fokussiert oder gar nicht angezeigt (also ist es in der Taskleiste?) ?

Edit: wenn das Fenster.visible:=true ist, würde ja auch application.restore helfen.
Es ist unmöglich, witzig zu sein ohne ein bisschen Bosheit. Die Bosheit eines guten Witzes ist der Widerhaken, der ihn haften lässt. - Georg Christoph Lichtenberg
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#3

Re: HotKey und SetFocus

  Alt 2. Mär 2008, 13:34
Das Programm wird beabsichtigt nicht in der Taskleiste angezeigt.

Meinst du das so ? Aus Delphi heraus funktioniert es, aus dem Explorer wieder nicht.
Delphi-Quellcode:
procedure TfrmMain.WMHotKey(var Message : TMessage);
begin
  if Message.wParam = HotKeyID then
    if Visible then
      Hide
    else
    begin
      Show;
      Application.Restore;
    end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: HotKey und SetFocus

  Alt 2. Mär 2008, 14:09
Hallo,
versuchs mal mit setActiveWindow(Application.Handle); vorm Focus setzen.
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Benutzerbild von TonyR
TonyR

Registriert seit: 17. Jun 2006
Ort: Bautzen
503 Beiträge
 
FreePascal / Lazarus
 
#5

Re: HotKey und SetFocus

  Alt 2. Mär 2008, 15:30
Wie das mit Hotkey geht weiß ich jetz nicht, aber ich hab das, was passiert, wenn der hotkey gedrückt wird und das Fenster HID(-DEN-)E ist in einen Timer getan ... das Programm mit "Showmainform:=false" gestartet und bei mir funktioniert es aus Delphi sowie vom Explorer aus wunderbar.

Vielleicht liegt es irgendwie an doppelten Aufruf der HotKey-Procedure!?
Es ist unmöglich, witzig zu sein ohne ein bisschen Bosheit. Die Bosheit eines guten Witzes ist der Widerhaken, der ihn haften lässt. - Georg Christoph Lichtenberg
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#6

Re: HotKey und SetFocus

  Alt 3. Mär 2008, 21:52
Es ist kein doppelter Aufruf. Ich dachte selbst im Überfliegen, zur Zusammenstellung des oben geposteten Codes, es hinge damit zusammen, aber der Aufruf in OnShow lässt das Programm aus der Taskleiste verschwinden. Trotzdem nahm ich ihn kurz raus und es änderte sich nichts. Was genau meinst du mit dem Timer ?
  Mit Zitat antworten Zitat
Benutzerbild von TonyR
TonyR

Registriert seit: 17. Jun 2006
Ort: Bautzen
503 Beiträge
 
FreePascal / Lazarus
 
#7

Re: HotKey und SetFocus

  Alt 3. Mär 2008, 22:33
Pass auf ->

funktioniert bei mir einwandfrei!

Ich hab das aber eben nicht mit Hotkey gemacht, sondern nur mit Timer, wirste sehen.
Wenn das bei dir ausm Explorer auch nicht funktioniert weiß ich auch nicht -.-
Angehängte Dateien
Dateityp: zip neuer_ordner_116.zip (978,5 KB, 4x aufgerufen)
Es ist unmöglich, witzig zu sein ohne ein bisschen Bosheit. Die Bosheit eines guten Witzes ist der Widerhaken, der ihn haften lässt. - Georg Christoph Lichtenberg
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#8

Re: HotKey und SetFocus

  Alt 4. Mär 2008, 17:16
Deins funktioniert. Anstelle vom Timer Hotkey und es klappt nicht mehr (dein Projekt umgebaut):
Angehängte Dateien
Dateityp: rar prj_390.rar (171,9 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#9

Re: HotKey und SetFocus

  Alt 16. Mär 2008, 11:04
Ich konnte den letzten Beitrag logischerweise nicht mehr editieren und möchte aber für die Suche die Lösung für das Problem bereitstellen:
Delphi-Quellcode:
procedure TfrmMain.WMHotKey(var Message : TMessage);
begin
  if Message.wParam = HotKeyID then
    if Visible then
      Hide
    else
    begin
      Show;
      SetForeGroundWindow(Handle);
    end;
end;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:28 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