mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 05:22:59 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			693 B
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			693 B
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
program TestKBD;
 | 
						|
{$X+}
 | 
						|
 | 
						|
uses
 | 
						|
{$IFDEF FPK}
 | 
						|
 KbdCalls;
 | 
						|
{$ELSE}
 | 
						|
 Os2Base, Os2Def;
 | 
						|
{$ENDIF}
 | 
						|
 | 
						|
function ExtKeyPressed: boolean;       (* 'key' is here as well e.g. a shift *)
 | 
						|
var
 | 
						|
 C: char;
 | 
						|
{$IFDEF VIRTUALPASCAL}
 | 
						|
 KI: KbdKeyInfo;
 | 
						|
 K: KbdInfo;
 | 
						|
{$ELSE}
 | 
						|
 KI: TKbdKeyInfo;
 | 
						|
 K: TKbdInfo;
 | 
						|
{$ENDIF}
 | 
						|
 B: boolean;
 | 
						|
begin
 | 
						|
 B := false;
 | 
						|
 K.cb := SizeOf (K);
 | 
						|
 KbdGetStatus (K, 0);
 | 
						|
{ FillChar (KI, SizeOf (KI), 0);
 | 
						|
 KbdCharIn (KI, IO_NOWAIT, 0);}
 | 
						|
 ExtKeyPressed :=
 | 
						|
{ (KI.chScan <> 0) and (KI.chScan and $80 = 0) or }
 | 
						|
                                                    (K.fsState and $FF0F <> 0);
 | 
						|
end;
 | 
						|
 | 
						|
begin
 | 
						|
 WriteLn ('Press any _shift_ (or Alt, Ctrl etc.) key to continue ...');
 | 
						|
 repeat until ExtKeyPressed;
 | 
						|
end.
 |