Het detecteren van het platform van een lopend proces met behulp van VC ++ VC # en VB.NET


INLEIDING


Dit artikel beschrijft een voorbeeld voor de alles-In-één Code Framework dat kan worden gedownload. De code ziet u de volgende taken voor platform-detectie:
  • De naam van het huidige besturingssysteem detecteren. Bijvoorbeeld detecteren dat u Microsoft Windows 7 Enterprise wordt uitgevoerd.
  • Bepalen welke versie van het huidige besturingssysteem. Bijvoorbeeld detecteren dat u Microsoft Windows NT 6.1.7600.0 worden uitgevoerd.
  • Bepalen of het huidige besturingssysteem een 64-bits besturingssysteem is.
  • Bepalen of het huidige proces een 64-bits proces is.
  • Bepalen of een willekeurige proces dat wordt uitgevoerd op het systeem een 64-bits is.

Moeilijkheidsgraad

Informatie over downloaden

Dit codevoorbeeld downloaden, klikt u op de volgende koppeling:

Technisch overzicht

De naam van het huidige besturingssysteem detecteren


De naam van het besturingssysteem worden van de eigenschap Bijschrift van het Win32_Operating systeem WMI -klasse opgespoord.

Opmerking Ga naar de volgende Microsoft-website voor meer informatie over het WMI-systeem van Win32_Operating -klasse:Hier vindt u de code voor C++, C# en VB.NET die de waarde van Win32_OperatingSystemvraagt. Bijschrift eigenschap in de GetOSName functie van het codevoorbeeld. Ook kunt u de tekenreeks van de naam van het besturingssysteem met behulp van de GetVersionEx, GetSystemMetrics, GetProductInfoen GetNativeSystemInfo functies maken.

Opmerking Ga naar de volgende Microsoft-website voor meer informatie over het bouwen van de tekenreeks van de naam van het besturingssysteem met behulp van de GetVersionEx, GetSystemMetrics, GetProductInfoen GetNativeSystemInfo functies:
Opmerking Deze oplossing kan niet van toepassing op nieuwere versies van Windows dan Windows 7.

Bepalen welke versie van het huidige besturingssysteem.

  • C++-code voor bevat de OSVERSIONINFOEX -structuur die is gegenereerd door de functie GetVersionEx de volgende informatie:
    • Het primaire versienummer dwMajorVersion
    • Het secundaire versienummer van de dwMinorVersion
    • Het build-nummer dwBuildNumber
    • Het primaire versienummer wServicePackMajor van het meest recente Service Pack
    • Het secundaire versienummer van ServicePackMinor van het meest recente Service Pack
    Deze nummers kunt u snel bepalen wat het besturingssysteem is, of een bepaalde Service Pack is geïnstalleerd. De methode OSVERSIONINFOEX.wProductType kan ook worden vastgesteld of het besturingssysteem een werkstation, een server of een domeincontroller is.
  • Voor C# en VB.NET code retourneert de eigenschap System.Environment.OSVersion een OperatingSystem met de huidige platform-id en de versienummers.

    Opmerking Ga naar de volgende Microsoft-website voor meer informatie over de eigenschap System.Environment.OSVersion :Opmerking Ga naar de volgende Microsoft-website voor meer informatie over de klasse OperatingSystem :Deze nummers kunt u snel bepalen van het huidige besturingssysteem en of een bepaalde Service Pack is geïnstalleerd.

Bepalen of het besturingssysteem een 64-bits besturingssysteem


  • C++-code als een actief proces een 64-bits proces is, moet het besturingssysteem een 64-bits besturingssysteem. Via programmacode detecteren of een 32-bits programma wordt uitgevoerd op 64-bits besturingssysteem, kunt u de functie IsWow64Process .
  • Voor C# en VB.NET-code de eigenschap Environment.Is64BitOperatingSystem in het .NET Framework 4 wordt bepaald of het huidige besturingssysteem een 64-bits besturingssysteem.

    Opmerking Ga naar de volgende Microsoft-website voor meer informatie over de eigenschap Environment.Is64BitOperatingSystem :

Bepalen of een proces een proces van 64-bits is

Als u wilt bepalen of een actief proces een 64-bits proces is, kunt u uitvoeren met de volgende code om te bepalen van het type Boolean waarde als resultaat met de VC ++ preprocessor symbolen:

BOOL Is64BitProcess(void)
{
#if defined(_WIN64)
return TRUE; // 64-bit program
#else
return FALSE;
#endif
}


U kunt ook de eigenschap Environment.Is64BitProcess in het .NET Framework 4 als u met C# of VB.NET code.

Opmerking Ga naar de volgende Microsoft-website voor meer informatie over de eigenschap Environment.Is64BitProcess :
Als u bepalen wilt of een willekeurige toepassing een 64-bits proces is, moet u bepalen of de OS -bits, 64-bits is. Gebruik hiervoor de methode IsWow64Process() en de greep doel proces.

Technologie-categorie

  • Windows Base

Talen

In deze voorbeeldcode bevat de volgende programmeertalen.
TaalNaam van het project
Visual C++ .NETCppPlatformDetector
Visual C#CSPlatformDetector
Visual Basic .NETVBPlatformDetector

Vereisten

  • Deze voorbeeldtoepassing wordt gemaakt met behulp van Visual Studio 2010 en .NET Framework 4.

Meer informatie


Wat is een alles-In-één Code Framework?

Alles-In-één code Framework gebruikt codevoorbeelden in verschillende programmeertalen om te illustreren de technieken voor de meeste Microsoft. Elke codevoorbeeld is zorgvuldig geselecteerd, bestaat en gedocumenteerd om algemene scenario's voor de code weer te geven. Voor meer informatie over alles-In-één Code Framework gaat u naar de volgende website van de alles-In-één-Code Framework:

Het zoeken naar meer voorbeelden van alles-In-één Code Framework

Ga voor meer voorbeelden van alles-In-één Code Framework ondersteuning zoeken naar "kbcodefx" en verwante trefwoorden op de Microsoft website. Of Ga naar de volgende Microsoft-website:

Referenties


Ga naar de volgende website voor meer informatie over het programmatisch wordt gecontroleerd of u op een 64-bits Windows uitvoert:
Snelle publicatie-disclaimer
Microsoft corporation en/of haar respectieve toeleveranciers doen geen toezeggingen over de geschiktheid, betrouwbaarheid of juistheid van de informatie en gerelateerde afbeeldingen die in dit document. Dergelijke informatie en bijbehorende grafische afbeeldingen worden "as is" geleverd zonder enige garantie. Microsoft en/of haar respectieve leveranciers wijzen alle garanties en voorwaarden met betrekking tot deze informatie, en afbeeldingen, met inbegrip van alle impliciete garanties en voorwaarden van verkoopbaarheid, geschiktheid voor een bepaald doel, VAKBEKWAME met betrekking inspanning, titel en niet-inbreuk. U stemt er uitdrukkelijk mee dat in geen geval Microsoft en/of haar leveranciers aansprakelijk voor enige directe, indirecte, GEVOLGSCHADE, incidentele, speciale, GEVOLGSCHADE schade of schade inclusief, zonder beperking, schade wegens verlies van gebruik, gegevens of winst, die voortvloeit uit of op enigerlei wijze in verband met het gebruik van of het niet kunnen gebruiken van de informatie en gerelateerde afbeeldingen hierin, of op basis van contract, onrechtmatige daad, nalatigheid, strikte aansprakelijkheid of anderszins, zelfs als Microsoft of enige van haar leveranciers is op de hoogte van de mogelijkheid van schade.