Contributor: MIKE DICKSON {=========================================================================== Date: 09-18-93 (23:25) From: MIKE DICKSON Subj: EXEC () --------------------------------------------------------------------------- [MM] ± I've written my own EXEC function that performs an FSearch() on the [MM] Well, that's great. (Why don't you post it!). Okay...here's an illustrative little program... } {$M $4000,0,0 } Program JohnMajorHadBetterResignPrettyDamnedShortly; Uses DOS; FUNCTION FileExists (FileName: String):Boolean;{ Checks if file exists } var Attr : Word; f : file; begin Assign (f, Filename); GetFAttr(f, attr); FileExists := (DOSError = 0); end; FUNCTION SearchExec (ProgramName, Parameters : String) : Integer; var Result : Integer; begin { If the program doesn't exist then search on the %PATH for it } If Not FileExists(ProgramName) then ProgramName := FSearch(ProgramName, GetEnv('PATH')); { If it's a batch file then call it through the command processor } If Pos('.BAT', ProgramName) <> 0 then begin Parameters := '/C '+ProgramName+' '+Parameters; ProgramName := GetEnv('COMSPEC'); end; { Now call the program...if it didn't exist the set DOSError to 2 } If ProgramName <> '' then begin SwapVectors; Exec (ProgramName, Parameters); Result := DOSError; SwapVectors; SearchExec := Result; end else SearchExec := 2; end; begin If SearchExec ('AUTOEXEC.BAT', '/?') <> 0 then writeln ('Execution was okay!') else writeln ('Execution was NOT okay!'); end.