Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programm per Tastenkombination aufrufen (https://www.delphipraxis.net/49049-programm-per-tastenkombination-aufrufen.html)

Gentleman 4. Jul 2005 23:59


Programm per Tastenkombination aufrufen
 
Hi!

Ich habe ein kleines Toll geschrieben. Ich möchte aber, dass dieses Tool nur aufgerufen wird, wenn man eine bestimmte Tastenkombination drückt, z.B. [STRG]+[T]. Wie kann ich das anstellen?

thx im Voraus!

Gruß Gentleman!

BrunoT 5. Jul 2005 07:56

Re: Programm per Tastenkombination aufrufen
 
Hi Lennard,

1. Möglichkeit:
das ist imho nur mit einer Verknüpfung auf dem Desktop und einer darauf zugewiesener Tastenkombination möglich, es sei, Du hast eine Tastatur mit frei belegbaren Tasten.

2. Möglichkeit:
Programm ist schon als Prozess gestartet und fängt systemweit die Tastaturcodes ab, um sich dann beim Hotkey zu zeigen(wie Realplayer o.ä.)

mfg

BrunoT

barf00s 5. Jul 2005 09:15

Re: Programm per Tastenkombination aufrufen
 
Delphi-Quellcode:
uses
  ShellApi; // ShellExecute

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    iHotKeyStrgT: integer;
    procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
  public
  end;

implementation

procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
  if Msg.HotKey = iHotKeyStrgT then
    ShellExecute(0, 'open', PChar(sDir + '\Programm.exe'), nil, nil, SW_SHOWNORMAL);
end;

procedure TForm1.FormCreate(Sender: TObject);
const
  MOD_CONTROL = 2;
  VK_T = $54;

begin
  iHotKeyStrgT := GlobalAddAtom('Hotkey_StrgT'); // könnte man auch noch den programmnamen einbaun -> Application.Title bspsweise
  RegisterHotKey(Handle, iHotKeyStrgT, MOD_CONTROL, VK_T);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  UnRegisterHotKey(Handle, iHotKeyStrgT);
  GlobalDeleteAtom(iHotKeyStrgT);
end;

Gentleman 9. Jul 2005 14:14

Re: Programm per Tastenkombination aufrufen
 
Danke für die Hilfe!
Ich habe in barf00s Code nur den ShellExecute Befehl durch Visible:= True verändert, da ich mein Programm nicht immer neu starten möchte.
funzt super ^^ :cheers: .


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:06 Uhr.

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