System Architektur auslesen

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Fräulein.

    Also auf der Seite die du gepostet hast, gibt es folgendes Skript und das funktioniert auch unter 64-Bit.

    VB.NET-Quellcode

    1. Public Function GetArchitektur() As Integer
    2. Return Runtime.InteropServices.Marshal.SizeOf(GetType(IntPtr)) * 8
    3. End Function


    Vllt. kann es daran liegen, das du dein Programm im 32-Bit Modus ausführst

    Quellcode

    1. Vllt. kann es daran liegen, das du dein Programm im 32-Bit Modus ausführst


    ja aber das ist ja schwachsinn. Ich möchte ja wissen was für ein systemtyp windows ist, egal wie ich die datei ausführe.

    @jvbsl
    Auf den seiten geht es um um c# und davon versteh ich garnichts.
    Gibts da auch was in vb .net oder kann mir jemand das übersetzen?

    Grüße
    :)

    VB.NET-Quellcode

    1. Private is64BitProcess As Boolean = (IntPtr.Size = 8)
    2. Private is64BitOperatingSystem As Boolean = is64BitProcess OrElse InternalCheckIsWow64()
    3. <DllImport("kernel32.dll", SetLastError := True, CallingConvention := CallingConvention.Winapi)> _
    4. Public Shared Function IsWow64Process(<[In]> hProcess As IntPtr, <Out> wow64Process As Boolean) As <MarshalAs(UnmanagedType.Bool)> Boolean
    5. End Function
    6. <MethodImpl(MethodImplOptions.NoInlining)> _
    7. Private Shared Function InternalCheckIsWow64() As Boolean
    8. If (Environment.OSVersion.Version.Major = 5 AndAlso Environment.OSVersion.Version.Minor >= 1) OrElse Environment.OSVersion.Version.Major >= 6 Then
    9. Using p As Process = Process.GetCurrentProcess()
    10. Dim retVal As Boolean
    11. IsWow64Process(p.Handle, retVal)
    12. Return retVal
    13. End Using
    14. Else
    15. Return False
    16. End If
    17. End Function
    "InternalCheckIsWow64" wurde nicht deklariert. Auf das Objekt kann aufgrund seiner Schutzstufe möglicherweise nicht zugegriffen werden.

    Was genau bedeutet das? Kann jemand einen getesteten code posten der wirklich funktioniert? Puzzeln is nich so mein ding. ;)
    statt das Handle des aktuellen Prozesses kann man ja anhand anderer überprüfen(wenn man dabei alle durchgeht dürfte man auf der sicheren Seite stehen ;) )... Wenn du deine ZielCPU auf AnyCPU hast, dann sollte es auch bei CurrentProcess(sofern du nicht auf irgendeine andere Art im 32 Bit Modus ausführst) problemlos Funktionieren...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---