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 Systemweiten Hotkey (https://www.delphipraxis.net/51168-systemweiten-hotkey.html)

unattended 7. Aug 2005 17:05


Systemweiten Hotkey
 
hallo,

ich habe nach folgendem Code Hotkeys eingerichtet:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations } 
      HotKeyID: Integer;
    procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
  public
    { Public declarations } 
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm} 

procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
  if Msg.HotKey = HotKeyID then
    ShowMessage('Ctrl + Alt + P wurde gedrückt !');
end;

procedure TForm1.FormCreate(Sender: TObject);
const
  VK_P = $50;
begin
  HotKeyID := GlobalAddAtom(PChar(Application.Exename + '_Hotkey1'));
  RegisterHotKey(Handle, HotKeyID, MOD_CONTROL + MOD_ALT, VK_P);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  UnRegisterHotKey(Handle, HotKeyID);
  GlobalDeleteAtom(HotKeyID);
end;
Wenn ich nun

Delphi-Quellcode:
RegisterHotKey(Handle, HotKeyID, 0, VK_F12);
verwende klappts nicht. Es passiert garnichts. Bei allen anderen F Tasten funktionierts nur bei F12 nicht. Warum ?

Joachim Rohde 7. Aug 2005 18:54

Re: Systemweiten Hotkey
 
Darum:
Zitat:

Windows NT4 and Windows 2000/XP: The F12 key is reserved for use by the debugger at all times, so it should not be registered as a hot key. Even when you are not debugging an application, F12 is reserved in case a kernel-mode debugger or a just-in-time debugger is resident.
Quelle

unattended 7. Aug 2005 19:23

Re: Systemweiten Hotkey
 
hmm ich hab aber für ne Tastatur sone Software die die F Tasten erstezt und auch die Taste F12 ?
Wieso können die das?

Luckie 7. Aug 2005 23:21

Re: Systemweiten Hotkey
 
Weil die einen eigenen Tastaturtreiber mitbringen?

Olli 8. Aug 2005 12:31

Re: Systemweiten Hotkey
 
Zitat:

Zitat von Luckie
Weil die einen eigenen Tastaturtreiber mitbringen?

Das wäre aber fahrlässig. Denn es gibt einfach bestimmte Konventionen. Es gibt sicher auch Gründe sie außer Kraft zu setzen, aber die sind doch äußerst selten (zB Operator Station im Glaswerk verhindert Strg+Alt+Entf :))

unattended 8. Aug 2005 13:38

Re: Systemweiten Hotkey
 
aha okay.
Naja dann gehts halt nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 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