Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Windows-Hotkey (https://www.delphipraxis.net/1170-windows-hotkey.html)

CalganX 28. Okt 2002 18:00

Also die Datei ist C:\WINDOWS\System32\TaskMgr.exe, allerdings kann man in einem Hotkey nicht die Windows-Taste nutzen...

Chris

Christian Seehase 28. Okt 2002 18:59

Moin Chris,

wie "das geht nicht" ;-)

Code:
[b]uses[/b]
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls,shellapi;

[b]type[/b]
  TForm1 = [b]class[/b](TForm)
    Button1: TButton;
    Button2: TButton;
    [b]procedure[/b] Button1Click(Sender: TObject);
    [b]procedure[/b] Button2Click(Sender: TObject);
  [b]private[/b]
    [color=#000080]{ Private-Deklarationen }[/color]
  [b]public[/b]
    [color=#000080]{ Public-Deklarationen }[/color]
    [b]procedure[/b] WndProc([b]var[/b] msg : TMessage); override;
  [b]end[/b];

[b]var[/b]
  Form1: TForm1;

[b]implementation[/b]

[color=#000080]{$R *.DFM}[/color]

[b]procedure[/b] TForm1.WndProc([b]var[/b] msg : TMessage);
[b]begin[/b]
  [b]if[/b] msg.Msg = WM_HOTKEY [b]then[/b]
  [b]begin[/b]
    [b]if[/b] (msg.lParam [b]and[/b] $FFFF) = MOD_WIN [b]then[/b]
    [b]begin[/b]
      [b]if[/b] ((msg.lParam [b]and[/b] $FFFF0000) [b]shr[/b] 16) = ord('T') [b]then[/b]
      [b]begin[/b]
        ShellExecute(0,'open','taskmgr.exe',[b]nil[/b],[b]nil[/b],SW_NORMAL);
      [b]end[/b];
    [b]end[/b];
  [b]end[/b];
  [b]inherited[/b] WndProc(msg);
[b]end[/b];

[b]procedure[/b] TForm1.Button1Click(Sender: TObject);
[b]begin[/b]
  RegisterHotKey(self.Handle,$BFFF,MOD_WIN,ord('T'));
[b]end[/b];

[b]procedure[/b] TForm1.Button2Click(Sender: TObject);
[b]begin[/b]
  UnregisterHotkey(self.Handle,$BFFF);
[b]end[/b];
Ist jetzt zwar 'ne Delphi Lösung...

MathiasSimmack 28. Okt 2002 19:11

Ich sehe den Chakotay schon, wie er sich sein Tatoo abkratzt. :twisted:
Nix für ungut, Chris.

Ich meinte mit meinem zweiten Vorschlag, dass es doch (hier?) eine Funktion gibt, mit der man Shortcuts erstellen kann. Auf die gleiche Weise kann man auf eine Verknüpfung zugreifen und evtl. den Hotkey dieser Verknüpfung "zurechtbiegen". Der letzte Teil ist jetzt aber nur Theorie, weil ich offen gesagt nicht weiß, ob´s eine passende Eigenschaft gibt.
Wäre aber denkbar.

Also, Verknüpfung manuell erstellen und einen beliebigen Shortcut zuordnen. Dann, Programm schreiben, Verknüpfung laden und bearbeiten ...

Christian Seehase 28. Okt 2002 22:57

Moin Mathias,

ich weiss jetzt natürlich nicht, welchen Weg Shortcuts zu erstellen Du genau meinst, aber direkt eingeben als Tastenkombination in einen Shortcut kann man WIN nicht, und über das IShellLink Interface einen Shortcut zu erstellen enthält zwar die Möglichkeit mit SetHotKey einen solchen zu setzen, aber auch hier wird WIN ignoriert.
(letzteres entspricht ja dem "zurechtbiegen" eines manuell erstellten Shortcuts.)

Leider hab' ich's nicht zur Hand, aber eventuell lässt sich noch eine Möglichkeit über TweakUI finden.
Ich weiss es leider nicht genau, aber eventuell bietet das die Möglichkeit noch weitere WIN-? Kombinationen einzurichten, so dass man mal überwachen könnte, wie dies genau geschieht. (z.B. mit RegMon)

CalganX 29. Okt 2002 11:57

Das Problem ist, dass man die Windows-Taste nicht in Hotkeys nutzen kann, dass wusste ich aber...
Die Frage war ja nur, ob es eine Delphiunabhängige Lösung gibt die Windows-Taste (Das ist die Taste, die bei neueren Tastaturen zwischen Strg und Alt links liegt... ;) ) in einen Hotkey (diesen kann man einrichten, wenn man Verknüpfungen mit den Eigenschaften aufruft...) einstellen kann....

Chris

PS: Ich denke das wir hier nämlich etwas vom Thema abgekommen sind...


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:10 Uhr.
Seite 2 von 2     12   

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