Code: Select all
If OpenLibrary(0,"shell32.dll")
*MAlloc = GetFunction(0, "IsUserAnAdmin")
If CallCFunctionFast(*MAlloc) = 1
MessageRequester("Info","User is Admin", #MB_ICONINFORMATION)
Else
MessageRequester("Info","User is not Admin",#MB_ICONINFORMATION)
EndIf
CloseLibrary(0)
EndIf
Check If Your program is running under x64 Windows OS Or Not
I think It is much better than kernel32.dll (IsWow64Process) function
Please check And confirm
Code: Select all
lRetVal.i
sRemMachName.s
lTopLevelKey.i
lHKeyhandle.i
sKeyName.s
lhkey.i
sValueName.s
vValue.s
msg.s ;
#ERROR_NONE = 0
Procedure.l QueryValueEx(lhkey.i, szValueName.s)
Define.i cch, lrc, lType, lValue
Define.s sValue
Shared vValue
cch = 255
sValue = Space(255)
lrc = RegQueryValueEx_(lhkey, szValueName, 0, @lType, @sValue, @cch)
If lrc = #ERROR_NONE
vValue = Left(sValue, cch - 1)
Else
vValue = "Empty"
EndIf
ProcedureReturn lrc
EndProcedure
lTopLevelKey = #HKEY_LOCAL_MACHINE
sRemMachName = ""
sKeyName = "Software\Microsoft\Windows\CurrentVersion"
sValueName = "CommonW6432Dir"
lRetVal = RegConnectRegistry_(sRemMachName, lTopLevelKey, @lHKeyhandle)
lRetVal = RegOpenKeyEx_(lHKeyhandle, sKeyName, 0,#KEY_READ, @lhkey)
lRetVal = QueryValueEx(lhkey, sValueName)
RegCloseKey_(lhkey)
If lRetVal = 0
MessageRequester("Information","Running System is 64 bit", #MB_ICONINFORMATION)
Else
MessageRequester("Information","Running System is 32 bit", #MB_ICONINFORMATION)
EndIf
Have a good day