DECLARE INTEGER GetLastError IN kernel32 IF SetFileAttributes (LCFILE, BITOR(lnFileAttributes, FILE_ATTRIBUTE_READONLY)) = 0 * Error setting attributes ?GetLastError() RETURN .F. ENDIF IF lnFileAttributes = -1 ?GetLastError() RETURN .F. ENDIF
>&& To make exe readonly attribute >LCFILE=curdir()+"ACCOUNTS.EXE" >#DEFINE FILE_ATTRIBUTE_READONLY 0x01 >#DEFINE FILE_ATTRIBUTE_HIDDEN 0x02 >#DEFINE FILE_ATTRIBUTE_SYSTEM 0x04 >#DEFINE FILE_ATTRIBUTE_DIRECTORY 0x10 >#DEFINE FILE_ATTRIBUTE_ARCHIVE 0x20 >#DEFINE FILE_ATTRIBUTE_NORMAL 0x80 >#DEFINE FILE_ATTRIBUTE_TEMPORARY 0x0100 >DECLARE LONG SetFileAttributes IN WIN32API STRING FileName, LONG FileAttributes >DECLARE LONG GetFileAttributes IN WIN32API STRING FileName >lnFileAttributes = GetFileAttributes (LCFILE) >IF SetFileAttributes (LCFILE, BITOR(lnFileAttributes, FILE_ATTRIBUTE_READONLY)) = 0 >* Error setting attributes > RETURN .F. >ENDIF >IF lnFileAttributes = -1 > RETURN .F. >ENDIF >