Delphi-PRAXiS

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 27. Okt 2002 20:13


Windows-Hotkey
 
Hi,
wie kann man in einem HotKey die Windows-Taste nutzen?
Und nochwas: Wie kann man manuell (über eine Exe) den Taskmanager starten?

Chris

Daniel B 27. Okt 2002 20:17

Hi,

meinst Du mit HotKey eine Tastenkombination, oder THotKey?

Grüsse, Daniel :hi:

CalganX 27. Okt 2002 20:18

Einfacher HotKey unter Win XP

Luckie 27. Okt 2002 20:44

Die Windowstaste wirst du wohl nicht mit einem Hotkey belegen können. Das wäre ja schön blöd. Da drücke ich auf die Windowstaste und statt des erwarteten Menüs popt dein Programm auf. :evil:

CalganX 27. Okt 2002 20:45

Nein, ich meinte das WIN + T für Taskamanager z.B...

Chris

Luckie 27. Okt 2002 20:55

Damit hab eich mich noch nicht beschäfftigt.

MathiasSimmack 28. Okt 2002 07:01

Na, Luckie?! - Gut, direkt hast du dich nicht damit beschäftigt, aber indirekt schon. Deine Tutorial-Samples enthalten ja mein Hotkey-Demo. :)
Da wird demonstriert, wie man die WinXP-Funktion WIN + L unter 9x-Systemen zum Logout benutzen kann:
Code:
if(wv.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS) then
  RegisterHotKey(wnd,LogOff_Id,[b]MOD_WIN[/b],WORD('L'));

{ ... }

WM_HOTKEY:
  case wp of
    LogOff_Id:
      begin
        SendMessage(wnd,WM_CLOSE,0,0);
        ExitWindowsEx(EWX_LOGOFF,0);
      end;
  end;
Nach dem selben Muster ließe sich nun auch WIN + T belegen.

CalganX 28. Okt 2002 10:14

Dazu muss aber immer ein Program geöffnet sein... Ich will das ganze aber Delphi unabhängig (sonst hätte ich auch in eine andere Sparte gepostet)!

Chris

MathiasSimmack 28. Okt 2002 11:18

Re: Windows-Hotkey
 
Delphi-unabhängig? Hm,
Zitat:

Zitat von Chakotay1308
wie kann man in einem HotKey die Windows-Taste nutzen?

Okay, bis hier stimmt´s ja noch ...
Zitat:

Und nochwas: Wie kann man manuell (über eine Exe) den Taskmanager starten?
Aber jetzt? Was für eine EXE soll das sein? Eine selbstgeschriebene? Dann ist´s schon mal Delphi-abhängig (es sei denn, du nimmst VB oder C). Ansonsten meinst du vielleicht die Exe des TaskMan selbst?!

Als Vorschlag für dein Problem mit der Verknüpfung hätte ich trotzdem nur eine Delphi-bezogene Lösung -
Wenn du die Verknüpfung erstellt hast, dann lade sie in einem kleinen Programm und versuche den Hotkey manuell "umzubiegen".

CalganX 28. Okt 2002 12:54

Re: Windows-Hotkey
 
Zitat:

Zitat von MathiasSimmack
Delphi-unabhängig? Hm,
Zitat:

Zitat von Chakotay1308
wie kann man in einem HotKey die Windows-Taste nutzen?

Okay, bis hier stimmt´s ja noch ...
Zitat:

Und nochwas: Wie kann man manuell (über eine Exe) den Taskmanager starten?
Aber jetzt? Was für eine EXE soll das sein? Eine selbstgeschriebene? Dann ist´s schon mal Delphi-abhängig (es sei denn, du nimmst VB oder C). Ansonsten meinst du vielleicht die Exe des TaskMan selbst?!

Jepp, dass meinte ich...

Zitat:

Als Vorschlag für dein Problem mit der Verknüpfung hätte ich trotzdem nur eine Delphi-bezogene Lösung -
Wenn du die Verknüpfung erstellt hast, dann lade sie in einem kleinen Programm und versuche den Hotkey manuell "umzubiegen".
Wäre auch eine Möglichkeit, die würde ich aber nur im schlimmsten Notfall nutzen...

Also, nochmal was ich ganz genau will: Ich will auf Tastendruck (Windows + T) das der Taskmanager gestartet wird...

Chris

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 18:11 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-2025 by Thomas Breitkreuz