Feedback

VB - 64bit/32bit durch LoadedAssemblies

Veröffentlicht von am 18.03.2009
(2 Bewertungen)
Das folgende Skript erkennt ob es sich um ein 32bit oder 64bit Version des Betriebssystem handelt.

Bei einem64bit OS finden sich in My.Application.Info.loadedAssemblies hinweise darauf.


Die Idee My.Application.Info.LoadedAssemblies auszuwereten ist aus igendeinem Formum - leider weiss ich nicht mehr wo - aber die Idee funzt hervorragend.
Imports System.Collections.ObjectModel

       
 '''''' <summary>
 '''''' Speicher ob 64 oder 32 bit
 '''''' </summary>
 '''''' <remarks></remarks>
Public IsOS64bit As Boolean = False

'''''' <summary>        
'''''' prueft auf 64 oder 32 OS
'''''' </summary>
'''''' <returns></returns>
'''''' <remarks></remarks>
Public Function OS64Bit() As Boolean
            Try
                For Each ra As Reflection.Assembly In My.Application.Info.LoadedAssemblies
                    If ra.Location.ToLower.Contains("framework64") Then
                        IsOS64bit = True
                         = True
                        Exit For
                    Else
                        IsOS64bit = False
                    End If
                Next
            Catch ex As Exception
                IsOS64bit = False
                
            End Try
End Function
Abgelegt unter 64bit, 32bit.

5 Kommentare zum Snippet

Volker Steitz schrieb am 02.04.2009:
Mal eine Frage nebenbei: wenn jemand diesen Snippet so schlecht bewertet hat, wäre es doch hilfreich zu wissen warum. Evtl. würde das ja weiterhelfen.

Gruß SVSS
Jan Welker schrieb am 02.04.2009:
Da stimme ich Volker voll und ganz zu, das wäre sehr hilfreich.
Mr. Bart Simpson schrieb am 14.04.2009:
Ich halte die Methode für etwas holprig - es geht IMHO viel sauberer (allerdings ist mein Beispiel hier in C#):

public static bool Is64BitOS()
{
return System.Runtime.InteropServices.Marshal.SizeOf(typeof(IntPtr)) == 8;
}
Mr. Bart Simpson schrieb am 14.04.2009:
...wobei das nur klappt wenn für "any CPU" kompiliert wurde. Der einzig sichere (und wirklich saubere) Weg ist PInvoke von GetNativeSystemInfo
Koopakiller schrieb am 03.12.2014:
Ab .NET 4 gibt es dann die Environment.Is64BitOperatingSystem-Eigenschaft. In neueren Applikationen sollte diese natürlich bevorzugt werden. Intern wird von dieser Eigenschaft die IsWow64Process-Methode verwendet. Siehe dazu:
http://referencesource.microsoft.com/#mscorlib/system/environment.cs,75feca36cdd83149
 

Logge dich ein, um hier zu kommentieren!