Zitat von
smallsmoker:
@tom: bei mir nicht ...
Ich bin doch etwas erstaunt, dass der Fehler bei Euch nicht auftritt.
Denn GetKeyState() kann doch auch negative Wert liefern und das TKeyboardState Array nur Werte > 0 hat, muss es doch zu einem RangeError kommen.
TKeyboardState = array[0..255] of Byte;
Mache nun mal vorläufig die Werte mit ABS() positiv.
Vielleicht hat ja jemand eine bessere Lösung.
Delphi-Quellcode:
function GetKeyboardState: TKeyboardState;
// Ersetzt Windows.GetKeyboardState, da diese ausserhalb der eigenen Anwendung
// scheinbar nicht die korrekten Modifiers liefert
var
I: Integer;
begin
for I:= Low(Result) to High(Result) do
begin
Result[I]`:= Abs(GetKeyState(i));
end;
end;