123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- Name "UserInfo.dll test"
- OutFile UserInfo.exe
- RequestExecutionLevel Highest
- !define REALMSG "$\nOriginal non-restricted account type: $2"
- Section
- ClearErrors
- UserInfo::GetName
- IfErrors PluginFail
- Pop $0
- StrCmp $0 "" 0 +2 ; GetName can return a empty string on Win9x
- StrCpy $0 "?"
- UserInfo::GetAccountType
- Pop $1
- # GetOriginalAccountType will check the tokens of the original user of the
- # current thread/process. If the user tokens were elevated or limited for
- # this process, GetOriginalAccountType will return the non-restricted
- # account type.
- # On Vista with UAC, for example, this is not the same value when running
- # with `RequestExecutionLevel user`. GetOriginalAccountType will return
- # "admin" while GetAccountType will return "user".
- UserInfo::GetOriginalAccountType
- Pop $2
- StrCmp $1 "Admin" 0 +3 ; Note: Win9x always returns "Admin"
- MessageBox MB_OK 'User "$0" is in the Administrators group${REALMSG}'
- Goto done
- StrCmp $1 "Power" 0 +3
- MessageBox MB_OK 'User "$0" is in the Power Users group${REALMSG}'
- Goto done
- StrCmp $1 "User" 0 +3
- MessageBox MB_OK 'User "$0" is just a regular user${REALMSG}'
- Goto done
- StrCmp $1 "Guest" 0 +3
- MessageBox MB_OK 'User "$0" is a guest${REALMSG}'
- Goto done
- MessageBox MB_OK "Unknown error"
- Goto done
- PluginFail:
- MessageBox MB_OK "Error! Unable to call plug-in!"
- done:
- SectionEnd
|