As far as I know there is no direct functionality to help you with this 
inside of RB. But for alternatives that WORK and you can use now.

SetACL is a nifty tool to allow you to change the permissions from shell 
or any other method including adding support directly from your app 
using the ActiveX or the Command line(shell) utility. Just remember that 
you should always use caution when working with permissions.

Hope this helps.

http://setacl.sourceforge.net/index.html

Keith DeLong wrote:
>> Dr Gerard Hammond at [EMAIL PROTECTED] wrote:
>> Brilliant! Thanks Chris!
>>
>> Is anybody here willing to convert this into REALbasic ?
>>     
>
>
> Aaron Ballman was recently asking for suggestions for his WFS. He's not on
> the NUG but perhaps my bcc to him on this message will get him involved ;-)
>
> Keith DeLong
>
>
>
>  
>   
>> At 9:06 AM -0400 22/3/07, Chris Little wrote:
>>     
>>> on 3/21/07 11:28 PM, Dr Gerard Hammond at [EMAIL PROTECTED] wrote:
>>>
>>>       
>>>>  Hi,
>>>>
>>>>  Does anybody know how to change  a Win32 file's permissions via RB code.
>>>>  I need to modify a file so that the Security tab has the "Full
>>>>  Control" checkbox ticked for *ALL USERS*
>>>>
>>>>  using the shell I tried
>>>>
>>>>  attrib -r thefilepath
>>>>
>>>>  but that didn't work.
>>>>
>>>>  Logging in as an administrator and doing it via the Properties panel
>>>>  works but my users struggle with this level of detail.
>>>>         
>>> Gerard,
>>>
>>> Here is some C++ code that does close to what you need. It is a snippet from
>>> some code to give the Everyone group full access to a directory. It should
>>> be straight forward to convert to declares with the help of the docs on
>>> MSDN. You will still have to be logged in as a user with the rights to
>>> change file/directory permissions for the file in question.
>>>
>>> Chris
>>>
>>> ACCESS_MODE             aMode     = GRANT_ACCESS ;
>>> EXPLICIT_ACCESS         aAccess ;
>>> LPTSTR                  aPath     = inDir->path ;
>>> LPTSTR                  aTrustee = "Everyone" ;
>>> PACL                    aOldACL ;
>>> PACL                    aNewACL     = NULL ;
>>> PSECURITY_DESCRIPTOR    aPSD     = NULL ;
>>> DWORD                   aErr     = ERROR_SUCCESS;
>>> DWORD                   aMask     = ACTRL_FILE_WRITE | ACTRL_FILE_WRITE_PROP
>>> | ACTRL_FILE_WRITE_ATTRIB | ACTRL_FILE_READ | ACTRL_FILE_READ_PROP |
>>> ACTRL_FILE_READ_ATTRIB | ACTRL_FILE_APPEND | ACTRL_FILE_EXECUTE ;
>>>
>>> if (hAdvapi_DLL != NULL)
>>> {
>>>     aErr = GetNamedSecurityInfo( aPath, SE_FILE_OBJECT,
>>> DACL_SECURITY_INFORMATION, NULL, NULL, &aOldACL, NULL, &aPSD );
>>>
>>>     if ( aErr == ERROR_SUCCESS)
>>>     {
>>>         BuildExplicitAccessWithName( &aAccess, aTrustee, aMask, aMode,
>>> SUB_CONTAINERS_AND_OBJECTS_INHERIT ) ;
>>>        
>>>         aErr = SetEntriesInAcl( 1, &aAccess, aOldACL, &aNewACL ) ;
>>>
>>>         if ( aErr == ERROR_SUCCESS )
>>>         {
>>>             aErr = SetNamedSecurityInfo( aPath, SE_FILE_OBJECT,
>>> DACL_SECURITY_INFORMATION, NULL, NULL, aNewACL, NULL );
>>>         }
>>>
>>>         if ( aNewACL != NULL )
>>>         {
>>>             AccFree( aNewACL ) ;
>>>         }
>>>     }
>>>
>>>     if( aPSD != NULL)
>>>     {
>>>         AccFree( aPSD );
>>>     }
>>>    
>>>     aResult = ( aErr == ERROR_SUCCESS ) ;
>>> }
>>>
>>>
>>> _______________________________________________
>>> Unsubscribe or switch delivery mode:
>>> <http://www.realsoftware.com/support/listmanager/>
>>>
>>> Search the archives:
>>> <http://support.realsoftware.com/listarchives/lists.html>
>>>       
>
>
> _______________________________________________
> Unsubscribe or switch delivery mode:
> <http://www.realsoftware.com/support/listmanager/>
>
> Search the archives:
> <http://support.realsoftware.com/listarchives/lists.html>
>
>   
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to