home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / das_buch / dos / ks.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1993-05-13  |  2.7 KB  |  80 lines

  1. {$A+,B-,D-,E-,F-,G-,I-,L-,N-,O-,P-,Q-,R-,S-,T-,V-,X-,M 1024,0,0}
  2. (*===================================================================*)
  3. (*                               KS.PAS                              *)
  4. (*             Copyright (C) 1993 te-wi Verlag, München              *)
  5. (*-------------------------------------------------------------------*)
  6. (* Programm zur Umschaltung der Tasten NumLock, CapsLock (ShiftLock) *)
  7. (* und ScrollLock per Kommandozeile. Angabe von Großbuchstaben schal-*)
  8. (* tet die entsprechende Taste ein, Die Angabe von Kleinbuchstaben   *)
  9. (* schaltet die entsprechende Taste aus. Falls die Taste nicht ange- *)
  10. (* geben wird, wird ihr derzeitiger Zustand beibehalten. KS.PAS      *)
  11. (* verwendet die Unit KEYS.PAS, Prozedur SetKeyLock-                 *)
  12. (*===================================================================*)
  13.  
  14. PROGRAM KeyBoardState; (* KS *)
  15.  
  16. USES
  17.   Keys;
  18.  
  19. CONST
  20.   cCap      : BOOLEAN = FALSE;
  21.   sCap      : BOOLEAN = FALSE;
  22.   nCap      : BOOLEAN = FALSE;
  23.   cSmall    : BOOLEAN = FALSE;
  24.   sSmall    : BOOLEAN = FALSE;
  25.   nSmall    : BOOLEAN = FALSE;
  26.   NumLock   : tLEDSet = ignore;
  27.   CapsLock  : tLEDSet = ignore;
  28.   ScrollLck : tLEDSet = ignore;
  29.  
  30. VAR
  31.   i        : BYTE;
  32.   Parameter: STRING;
  33.  
  34. PROCEDURE CmdLineHelp;
  35. BEGIN
  36.   WriteLn(#13#10'Steuertastenumschaltung v.1.0, ' +
  37.           'Copyright (C) 1993 te-wi Verlag');
  38.   WriteLn('Aufruf: KS [n|N][s|S][c|C]');
  39.   WriteLn('  Wobei gilt: n := NumLock, s := ScrollLock, '
  40.         + 'c := CapsLock');
  41.   WriteLn('  Großbuchstabe schaltet ein, Kleinbuchstabe '
  42.         + 'schaltet aus.');
  43.   WriteLn('  Ist eine Taste nicht angegeben, wird ihr '
  44.         + 'Status beibehalten.');
  45. END;
  46.  
  47. BEGIN
  48.   IF ParamCount = 0 THEN CmdLineHelp
  49.   ELSE
  50.   BEGIN
  51.     Parameter := '';
  52.     FOR i := 1 TO ParamCount DO
  53.       Parameter := Parameter + ParamStr(i);
  54.  
  55.     IF (Pos('c', Parameter) = 0) AND (Pos('C', Parameter) = 0) AND
  56.        (Pos('s', Parameter) = 0) AND (Pos('S', Parameter) = 0) AND
  57.        (Pos('c', Parameter) = 0) AND (Pos('N', Parameter) = 0) THEN
  58.       CmdLineHelp
  59.     ELSE
  60.     BEGIN
  61.       cCap := Pos('C', Parameter) > 0;
  62.       sCap := Pos('S', Parameter) > 0;
  63.       nCap := Pos('N', Parameter) > 0;
  64.  
  65.       IF NOT cCap THEN cSmall := Pos('c', Parameter) > 0;
  66.       IF NOT sCap THEN sSmall := Pos('s', Parameter) > 0;
  67.       IF NOT nCap THEN nSmall := Pos('n', Parameter) > 0;
  68.  
  69.       IF cCap THEN CapsLock := ON ELSE IF cSmall THEN CapsLock := OFF;
  70.       IF sCap THEN ScrollLck := ON ELSE IF sSmall THEN
  71.         ScrollLck := OFF;
  72.       IF nCap THEN NumLock  := ON ELSE IF nSmall THEN NumLock := OFF;
  73.  
  74.       SetLockKey(ScrollLck, NumLock, CapsLock);
  75.     END;
  76.   END;
  77. END.
  78.  
  79. (*===================================================================*)
  80.