Hi,
ich möchte mit einem Programm mit ShortCuts andere Programme usw. öffnen. Also habe ich zu Testzwcken Code aus
DP benutzt.
Das Erstellen eines ShortCuts funktioniert auch einwandfrei; sobald ich aber den HotKey wieder entfernen will (siehe unten,
'UNREGISTER') funktioniert das nicht alles.
Delphi-Quellcode:
function ConvertPascalShortCut(
const p_scIN : TShortCut) : TcsWinHotKey;
const
_iModifier :
array [0..7]
of integer = (
0,
MOD_SHIFT,
MOD_CONTROL,
MOD_SHIFT
or MOD_CONTROL,
MOD_ALT,
MOD_SHIFT
or MOD_ALT,
MOD_CONTROL
or MOD_ALT,
MOD_SHIFT
or MOD_CONTROL
or MOD_ALT
);
begin
Result.dwModifier := p_scIN;
// Die für Modifier entscheidenden Stellen herausfiltern
Result.dwModifier := Result.dwModifier
and $0000FF00;
// an die richtige Stelle schieben
Result.dwModifier := Result.dwModifier
shr 13;
// und den richtigen Modifier aus der Tabelle holen
Result.dwModifier := _iModifier[Result.dwModifier];
// Virtual Key herausfiltern
Result.dwVK := p_scIN
and $000000FF;
end;
procedure create_hotkey;
var whkWork : TcsWinHotKey;
begin
whkWork := ConvertPascalShortCut(Hotkey1.HotKey);
RegisterHotKey(
Handle, sc_ct, whkWork.dwModifier,whkWork.dwVK);
Memo1.Lines.Add(programm_link);
// Speichert Programm_link in Memo
Memo1.Lines.Add(ShortCutToText (Hotkey1.HotKey));
// Speichert HotKey in Memo
end;
Delphi-Quellcode:
procedure unregister;
var s2 : string;
begin
// Die registrierten HotKeys (z.Bsp: STRG-A) sind ja in dem Memo gespeichert
// s2 definiert fragliches das HotKey
s2 := Memo1.Lines[..];
UnRegisterHotKey(FShortCut.Handle, TextToShortCut (s2));
end;
Wie kann ich denn jetzt den HotKey wieder entfernen?
Kann mir da jemand helfen ?
mfg
devnull