DECLARE INTEGER ShellExecute IN Shell32; INTEGER HWND,; STRING @lpOperation,; STRING @lpFile,; STRING @lpParameters,; STRING @lpDirectory,; INTEGER nShowCmd Whandle = -1 &&Should include window handle to receive any message boxes from application. lpOperation="open" &&May also be "print" or "explore" lpFile="edit" &&Your command to execute lpParameters="test.fil"+CHR(0) &&Include any parameters to be passed to executable lpDirectory="C:\"+CHR(0) &&Default directory nShowCmd=3 && 0=hide, 3=show maximized, 2= show minimized lnsuccess=ShellExecute(Whandle,@lpOperation,@lpFile,@lpParameters,@lpDirectory,nShowCmd) *returned value >32 then operation successful CLEAR DLLSAs far as Attrib, there is an example in the files section using API calls to do this.