home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / NOCAD.ZIP / NoCad.C < prev    next >
Text File  |  1993-02-07  |  2KB  |  103 lines

  1. #define  INCL_BASE
  2. #include <os2.h>
  3.  
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <stddef.h>
  7. #include <string.h>
  8.  
  9. static BOOL fOnCAD = TRUE;
  10.  
  11. void NcdAnalArgs (int argc, char *argv[]);
  12. void NcdHelpArgs (void);
  13. BOOL NcdSwitchCAD (BOOL fSwitch);
  14.  
  15.  
  16. main(int argc, char *argv[], char *envp[])
  17. {
  18.    printf ("NoCAD 1.0 Copyright (c) B. Kunrath 1993\n");
  19.  
  20.    NcdAnalArgs (argc, argv);
  21.    NcdSwitchCAD (fOnCAD);
  22.  
  23.    return NO_ERROR;
  24. }
  25.  
  26. void NcdAnalArgs (int argc, char *argv[])
  27. {
  28.     if (argc != 2)
  29.     {
  30.         NcdHelpArgs ();
  31.         exit (-1);
  32.     } 
  33.     else 
  34.     {
  35.         if (strcmp (argv[1], "ON"))
  36.         {
  37.            fOnCAD = TRUE;
  38.         }
  39.         else
  40.         {
  41.            if (strcmp (argv[1], "OFF"))
  42.            {
  43.               fOnCAD = FALSE;
  44.            }
  45.            else
  46.            {
  47.                NcdHelpArgs ();
  48.                exit (-1);
  49.            } 
  50.         } /* endif */
  51.     }
  52.     return;
  53. }
  54.  
  55. void NcdHelpArgs (void)
  56. {
  57.     printf("NoCAD needs a parameter !\n");
  58.     printf("Usage: NoCAD ON|OFF\n");
  59.     printf("              │  └─── means no boot on CAD \n");
  60.     printf("              └────── means boot on CAD !\n");
  61.     return;
  62. }
  63.  
  64. BOOL NcdSwitchCAD (BOOL fSwitch)
  65. {
  66.     ULONG ulApiRet;
  67.     HFILE hFile;
  68.     ULONG ulAct;
  69.     struct
  70.     {
  71.         USHORT usShiftState;
  72.         BYTE   ucHotKeyMake;
  73.         BYTE   ucHotKeyBreak;
  74.         USHORT usHotKeyID;
  75.     } chParms;
  76.     ULONG ulParm;
  77.     ULONG ulData;
  78.  
  79.     ulApiRet = DosOpen("KBD$",&hFile,&ulAct,0L,0L,1L,0x40,0L);
  80.     if (ulApiRet)
  81.     {
  82.        return FALSE;
  83.     }
  84.     else 
  85.     {
  86.        if (fSwitch)
  87.        {
  88.           chParms.usHotKeyID = 1;
  89.        } 
  90.        else 
  91.        {
  92.           chParms.usHotKeyID = -1;
  93.        } /* endif */
  94.        ulParm = sizeof(chParms);
  95.        ulData = 0;
  96.        ulApiRet = DosDevIOCtl(hFile, 04, 0x56, &chParms, sizeof (chParms), &ulParm, NULL, 0L, &ulData);
  97.        DosClose (hFile);
  98.        if (ulApiRet)
  99.           return FALSE;
  100.     } /* endif */
  101.  
  102. }
  103.