testkbd.pas 693 B

123456789101112131415161718192021222324252627282930313233343536
  1. program TestKBD;
  2. {$X+}
  3. uses
  4. {$IFDEF FPK}
  5. KbdCalls;
  6. {$ELSE}
  7. Os2Base, Os2Def;
  8. {$ENDIF}
  9. function ExtKeyPressed: boolean; (* 'key' is here as well e.g. a shift *)
  10. var
  11. C: char;
  12. {$IFDEF VIRTUALPASCAL}
  13. KI: KbdKeyInfo;
  14. K: KbdInfo;
  15. {$ELSE}
  16. KI: TKbdKeyInfo;
  17. K: TKbdInfo;
  18. {$ENDIF}
  19. B: boolean;
  20. begin
  21. B := false;
  22. K.cb := SizeOf (K);
  23. KbdGetStatus (K, 0);
  24. { FillChar (KI, SizeOf (KI), 0);
  25. KbdCharIn (KI, IO_NOWAIT, 0);}
  26. ExtKeyPressed :=
  27. { (KI.chScan <> 0) and (KI.chScan and $80 = 0) or }
  28. (K.fsState and $FF0F <> 0);
  29. end;
  30. begin
  31. WriteLn ('Press any _shift_ (or Alt, Ctrl etc.) key to continue ...');
  32. repeat until ExtKeyPressed;
  33. end.