[futurebasic] Re: [FB] Alias file in startup folder

Message: < previous - next > : Reply : Subscribe : Cleanse
Home   : December 2002 : Group Archive : Group : All Groups

From: Craig Hoyt <aztech4mac@...>
Date: Sun, 15 Dec 2002 16:31:27 -0800
Thanks Robert and Alain... Robert your suggestion to use fn FBWDtoPBWD(@pb)
was not needed as I already put that in. I finely used Alains code with
some modifications but all works now. Thanks to both of you.

Robert, as for your Hierarchical Menus problem. Make sure your MBAR
resources first item is 127 (the Apple Menu) then item #2 is Menu resource
#1. Item #3 is Menu resource #2 and on. The Apple menu must be resource
#127 and if your checking for an About item in you app check for item 127
and not use the constant _mAppleMenu (item 254) in the menu handler.

HTH
Craig

>_isAlias = BIT ( 15 ) // findInfo bit
>
>CLEAR LOCAL MODE
>'~'8
>LOCAL FN GetAppSpec( fSpec AS .FSSpec )
>'~'9
>DIM err  AS LONG
>DIM psn  AS ProcessSerialNumber
>DIM info AS ProcessInfoRec
>
>err = FN GetCurrentProcess( psn )
>LONG IF err = _noErr
>info.processInfoLength = 60
>info.processAppSpec    = fSpec
>err = FN GetProcessInformation( psn, info )
>END IF
>
>END FN = err
>
>
>CLEAR LOCAL MODE
>'~'8
>LOCAL FN SetFileAttribToAlias ( fileSpec AS ^fsspec )
>'~'9
>DIM AS FInfo fInfoRec
>DIM AS SHORT iErr
>// purpose is to set the "alias" finder bit on file so
>// the finder recognizes the file as an alias
>iErr = FN FSpGetFInfo ( #fileSpec, fInfoRec )
>fInfoRec.fdFlags = fInfoRec.fdFlags OR _isAlias
>iErr = FN FSpSetFInfo ( #fileSpec, fInfoRec )
>IF iErr THEN STOP STR$ ( iErr )
>
>END FN = iErr
>
>
>CLEAR LOCAL
>DIM AS FSSpec   aliasSpec, targetSpec
>DIM AS SHORT    resRef, err
>DIM AS SHORT  @ vRef
>DIM AS LONG   @ dirID
>DIM AS HANDLE @ aHndl
>'~'8
>LOCAL FN startAliasPref ( placeInStartup )
>'~'9
>LONG IF FN FindFolder ( _kOnSystemDisk, _kStartupFolderType,
>_kDontCreateFolder, vRef, dirID ) = _noErr
>LONG IF FN GetAppSpec( targetSpec ) = _noErr
>err = FN FSMakeFSSpec ( vRef, dirID, LEFT$(targetSpec.name,25) + "
>alias", aliasSpec )
>IF err = _noErr THEN err = FN FSpDelete( aliasSpec )
>
>LONG IF placeInStartup// if user wants to start app on OS startup
>FSpCreateResFile ( aliasSpec, _"FB3!", _"adrp", _smSystemScript )
>FN SetFileAttribToAlias ( aliasSpec )// set the alias bit
>resRef = FN FSpOpenResFile ( aliasSpec, _fsRdWrShPerm )
>LONG IF resRef != -1
>LONG IF FN NewAlias ( #_nil , targetSpec, aHndl ) = _noErr
>AddResource ( aHndl, _"alis", 0, aliasSpec.name$ )
>END IF
>CloseResFile ( resRef )
>END IF
>END IF
>END IF
>END IF
>
>END FN
>
>
>FN startAliasPref ( _true )
>--
>Cheers,
>
>A. Pastor

======================================================================
Aztech Professional On-Site Service

* Craig Hoyt
* Phone: 818-773-0864   Fax: 818-773-0675
* E-mail: craig@...
* Web: http://www.aztech4mac.com

Macintosh Technology Solutions Since 1984
=======================================================================