Oh shit, für 'ne Spielerei ist es jetzt schon ziemlich spät geworden.
Hansa, deine Sorgen um mein Programm kann ich eigentlich nicht mehr ganz nachvollziehen. Folgender Code zeigt, dass ^K und ^P sauber erkannt werden
und auch Ctrl+K+P, nicht aber Ctrl+P+K.
Delphi-Quellcode:
procedure TfoTest9.FormKeyDown(Sender:TObject;var Key:Word;Shift:TShiftState);
var KeybState : TKeyboardState;
begin
if SSCtrl in Shift then begin
if Key=ord('P') then begin
GetKeyboardState(KeybState);
if KeybState[ord('K')] and 128=128 then label1.caption:='Ctrl+K+P'
else label1.caption:='Ctrl P';
end;
if Key=ord('K') then label1.caption:='Ctrl K';
end;
end;
Problem ist, dass jedes Ctrl+K+P für einen kurzen Zeitraum auch ein Ctrl+K ist - aber ist das nicht auch mit einem DoppelClick so, der ist für eine in Windows definierte Zeitspanne auch erst einmal ein einfacher Click. Optimierung wäre also in diesem "Tastaturfall", ebenfalls eine Zeitspanne zu definieren, innnerhalb derer der zweite Buchstabe gedrückt werden muss, um als 3er-Kombination gewertet zu werden.
Oder habe ich dich völlig missverstanden?
Ralph