![]() |
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 |
Hi,
meinst Du mit HotKey eine Tastenkombination, oder THotKey? Grüsse, Daniel :hi: |
Einfacher HotKey unter Win XP
|
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:
|
Nein, ich meinte das WIN + T für Taskamanager z.B...
Chris |
Damit hab eich mich noch nicht beschäfftigt.
|
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:
Nach dem selben Muster ließe sich nun auch WIN + T belegen.
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; |
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 |
Re: Windows-Hotkey
Delphi-unabhängig? Hm,
Zitat:
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". |
Re: Windows-Hotkey
Zitat:
Zitat:
Also, nochmal was ich ganz genau will: Ich will auf Tastendruck (Windows + T) das der Taskmanager gestartet wird... Chris |
Also die Datei ist C:\WINDOWS\System32\TaskMgr.exe, allerdings kann man in einem Hotkey nicht die Windows-Taste nutzen...
Chris |
Moin Chris,
wie "das geht nicht" ;-)
Code:
Ist jetzt zwar 'ne Delphi Lösung...
[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]; |
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 ... |
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) |
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