Tried it and it doesnt seem to work
no errors or anything, just returns False when it should return True...
EDIT: Ah no it does work but only if the process is running on a 64 bit OS but as a 32 bit process... sure there will be a way to adapt it to give an accurate answer no matter what though - give me a few minutes 
Here's the code I'm using:
vb Code:
'
Friend Shared Function DoesWin32MethodExist(ByVal moduleName As String, ByVal methodName As String) As Boolean
Dim moduleHandle As IntPtr = GetModuleHandle(moduleName)
If (moduleHandle = IntPtr.Zero) Then
Return False
End If
Return (GetProcAddress(moduleHandle, methodName) <> IntPtr.Zero)
End Function
<ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail), DllImport("kernel32.dll", CharSet:=CharSet.Auto, SetLastError:=True)> _
Private Shared Function GetModuleHandle(ByVal moduleName As String) As IntPtr
End Function
<DllImport("kernel32.dll", CharSet:=CharSet.Ansi, SetLastError:=True, ExactSpelling:=True)> _
Private Shared Function GetProcAddress(ByVal hModule As IntPtr, ByVal methodName As String) As IntPtr
End Function
<DllImport("kernel32.dll", SetLastError:=True)> _
Friend Shared Function IsWow64Process(<[In]()> ByVal hSourceProcessHandle As IntPtr, <Out(), MarshalAs(UnmanagedType.Bool)> ByRef isWow64 As Boolean) As <MarshalAs(UnmanagedType.Bool)> Boolean
End Function
<DllImport("kernel32.dll", CharSet:=CharSet.Auto, SetLastError:=True)> _
Friend Shared Function GetCurrentProcess() As IntPtr
End Function
Public ReadOnly Property Is64BitOperatingSystem() As Boolean
Get
Dim flag As Boolean
Return ((DoesWin32MethodExist("kernel32.dll", "IsWow64Process") AndAlso IsWow64Process(GetCurrentProcess, flag)) AndAlso flag)
End Get
End Property