home *** CD-ROM | disk | FTP | other *** search
- {***************************************************************************}
- Program SPDOS;
- {---------------------------------------------------------------------------}
- {Dieses Programm gehört zum SetPriority-Paket und startet das als Parameter }
- {übergebene Programm mit der übergebenen Priorität. }
- {---------------------------------------------------------------------------}
-
- Uses
- dos,
- Setprio;
-
- Type
- PriorityClassRec=Record
- Name:String[1];
- Wert:longint;
- end;
-
- Const
- PrioArray:array[0..4] of PriorityClassRec=(
- (Name:'n';Wert:0),
- (Name:'i';Wert:1),
- (Name:'r';Wert:2),
- (Name:'t';Wert:3),
- (Name:'f';Wert:4));
-
- var
- ParseClass :string[1];
- PrioClass :longint;
- ParseDelta :string;
- DeltaClass :longint;
- i :integer;
- Params :string;
-
- begin
- if ParamCount>1 then begin
- ParseClass:=copy(ParamStr(1),1,1);{Klasse ermitteln }
- i:=0;
- while (ParseClass<>PrioArray[i].Name) AND (i<5) do inc(i);
- PrioClass:=PrioArray[i].Wert;
- ParseDelta:=copy(ParamStr(1),2,length(Paramstr(1))-1);
- if ParseDelta='' then ParseDelta:='0';
- val(ParseDelta,DeltaClass,i);
- if i=0 then begin
- Params:='';
- i:=3;
- while i<ParamCount do begin
- Params:=concat(Params,Paramstr(i),' ');
- inc(i);
- end;
- setpriority(PrioClass,DeltaClass);
- exec(Paramstr(2),Params);
- end else begin
- writeln('SP: SPDOS: Wrong priority delta.');
- end;
- end else writeln('SP: SPDOS: Not enough parameters.');
- end.