home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / sp.zip / SPDOS.PAS < prev    next >
Pascal/Delphi Source File  |  1993-09-17  |  2KB  |  56 lines

  1. {***************************************************************************}
  2. Program SPDOS;
  3. {---------------------------------------------------------------------------}
  4. {Dieses Programm gehört zum SetPriority-Paket und startet das als Parameter }
  5. {übergebene Programm mit der übergebenen Priorität.                         }
  6. {---------------------------------------------------------------------------}
  7.  
  8. Uses
  9.     dos,
  10.     Setprio;
  11.  
  12. Type
  13.     PriorityClassRec=Record
  14.         Name:String[1];
  15.         Wert:longint;
  16.     end;
  17.  
  18. Const
  19.     PrioArray:array[0..4] of PriorityClassRec=(
  20.         (Name:'n';Wert:0),
  21.         (Name:'i';Wert:1),
  22.         (Name:'r';Wert:2),
  23.         (Name:'t';Wert:3),
  24.         (Name:'f';Wert:4));
  25.  
  26. var
  27.     ParseClass    :string[1];
  28.     PrioClass        :longint;
  29.     ParseDelta    :string;
  30.     DeltaClass    :longint;
  31.     i                        :integer;
  32.     Params            :string;
  33.  
  34. begin
  35.     if ParamCount>1 then begin
  36.         ParseClass:=copy(ParamStr(1),1,1);{Klasse ermitteln                     }
  37.         i:=0;
  38.         while (ParseClass<>PrioArray[i].Name) AND (i<5) do inc(i);
  39.         PrioClass:=PrioArray[i].Wert;
  40.         ParseDelta:=copy(ParamStr(1),2,length(Paramstr(1))-1);
  41.         if ParseDelta='' then ParseDelta:='0';
  42.         val(ParseDelta,DeltaClass,i);
  43.         if i=0 then begin
  44.             Params:='';
  45.             i:=3;
  46.             while i<ParamCount do begin
  47.                 Params:=concat(Params,Paramstr(i),' ');
  48.                 inc(i);
  49.             end;
  50.             setpriority(PrioClass,DeltaClass);
  51.             exec(Paramstr(2),Params);
  52.         end else begin
  53.             writeln('SP: SPDOS: Wrong priority delta.');
  54.         end;
  55.     end else writeln('SP: SPDOS: Not enough parameters.');
  56. end.