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 Hotkey Problem (https://www.delphipraxis.net/41736-hotkey-problem.html)

ehem. Benutzer 7. Mär 2005 19:51


Hotkey Problem
 
Hallo,
ich will ermöglichen, das man bei meinem Programm Drive O+C ein Laufwerk via der Tastenkombination
Alt + O + Laufwerksbuchstabe (muss man in ein Editfeld eingeben) öffnen
und via der Tastenkombination
Alt + C + Laufwerksbuchstabe wieder schließen kann.

Der Source sieht folgendermaßen aus (Ausschnitt):
Delphi-Quellcode:
procedure TForm2.WMHotKey(var msg: TMessage);
begin
if (msg.WParam = 1) then ed1;
if (msg.WParam = 2) then ed2;
if (msg.WParam = 3) then ed3;
if (msg.WParam = 4) then ed4;
end;

procedure TForm2.Button1Click(Sender: TObject);
var
 a, b , c, d: string;
begin
a := form2.edit1.text;
c := form2.edit3.text;

RegisterHotKey(Handle,1, MOD_ALT,VK_O, a);
RegisterHotKey(Handle,2, MOD_ALT,VK_C, a);
RegisterHotKey(Handle,3, MOD_ALT,VK_O, c);
RegisterHotKey(Handle,4, MOD_ALT,VK_C, c);
end;
Ich bekomme dabei die Fehlermeldung das 'VK_0' undefiniert ist und das
zuviele Parameter vorhanden sind, ja ich weiß eine Taste zuviel, aber kann man das nicht auch
irgendwie mit drei Tasten machen?

Und wieso erkennt es 'VK_0' nicht?


MfG

ReDoX 7. Mär 2005 20:21

Re: Hotkey Problem
 
Weil VK_0 kein gültiger tatsencode ist.
VK_UP,VK_DOWN usw sind tastencode.

Delphi-Quellcode:
RegisterHotKey(Handle,1, MOD_ALT, ord(a));
RegisterHotKey(Handle,2, MOD_ALT, ord(a));
RegisterHotKey(Handle,3, MOD_ALT, ord(c));
RegisterHotKey(Handle,4, MOD_ALT, ord(c));
So sollte es gehen.

Mfg ReDoX

ehem. Benutzer 7. Mär 2005 20:29

Re: Hotkey Problem
 
dann hab ich doch aber nur alt + laufwerk, oder?
geht das nicht noch irgendwie alt + o + laufwerk?

ich hab mich bei den tastencode nach der seite gerichtet:
http://www.help-guide.de/win_virtual_key.htm


MfG

ReDoX 7. Mär 2005 20:32

Re: Hotkey Problem
 
Ich glaube nicht das ,dass auch mit zwei Buchstaben geht weil man bei der HotKey Komponente auch
nur einen Buchstaben angeben kann.
Mfg ReDoX

ehem. Benutzer 8. Mär 2005 08:11

Re: Hotkey Problem
 
Gibt es denn keinen Weg 3 Tasten zu benutzen?
Naja dann muss wohl die Bedienfreundlichkeit darunter leiden
und es kommen nur 2 Tasten rein...


MfG

toms 8. Mär 2005 10:32

Re: Hotkey Problem
 
Hallo,

Du koenntest auch einfach Alt + O als Hotkey Registrieren und dann
mittels GetKeyboardState() feststellen, welche andere Taste noch gedrueckt wird.


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