Hvordan registrere plattformen for en prosess som kjører ved hjelp av VC ++ VC # og VB.NET


INTRODUKSJON


Denne artikkelen beskriver en alt-i-ett rammeverk kode utvalg som er tilgjengelig for nedlasting. Kodeeksemplet viser gjenkjenning følgende plattformer:
  • Finne navnet på det gjeldende operativsystemet. Hvis du for eksempel Oppdag at du kjører Microsoft Windows 7 Enterprise.
  • Finne ut hvilken versjon av det gjeldende operativsystemet. Hvis du for eksempel Oppdag at du kjører Microsoft Windows NT 6.1.7600.0.
  • Fastslå om det gjeldende operativsystemet er en 64-biters operativsystem.
  • Fastslå om den gjeldende prosessen er en 64-biters-prosessen.
  • Fastslå om en vilkårlig prosess som kjører på systemet er 64-biters.

Vanskelighetsgraden

Nedlastingsinformasjon

Hvis du vil laste ned dette kodeeksemplet, klikker du koblingen nedenfor:

Teknisk oversikt

Finn navnet på det gjeldende operativsystemet


Navnet på operativsystemet kan oppdages fra Caption -egenskapen for Win32_Operating System WMI -klassen.

Obs! Hvis du vil ha mer informasjon om Win32_Operating System WMI -klassen, kan du gå til følgende Microsoft-webområde:Du kan finne C++, C# og VB.NET koden som spør etter verdien av Win32_OperatingSystem. Tittel -egenskapen i funksjonen GetOSName i kode-eksemplet. Du kan eventuelt bygge streng for navnet på operativsystemet ved hjelp av funksjonene GetVersionEx, GetSystemMetrics, GetProductInfoog GetNativeSystemInfo .

Obs! Hvis du vil ha mer informasjon om hvordan du bygger streng for navnet på operativsystemet ved hjelp av funksjonene GetVersionEx, GetSystemMetrics, GetProductInfoog GetNativeSystemInfo , kan du gå til følgende Microsoft-webområde:
Obs! Denne løsningen gjelder kanskje ikke for Windows-versjoner senere enn Windows 7.

Finne ut hvilken versjon av gjeldende operativsystem

  • For C++-kode inneholder OSVERSIONINFOEX -strukturen er produseres av GetVersionEx -funksjonen følgende informasjon:
    • DwMajorVersion hovedversjonsnummeret
    • Det underordnede versjonsnummeret for dwMinorVersion
    • DwBuildNumber build-nummer
    • WServicePackMajor hovedversjonsnummeret for oppdateringspakken
    • Det underordnede versjonsnummeret for ServicePackMinor i den nyeste oppdateringspakken
    Du kan bruke disse tallene til å bestemme hva operativsystemet er Hurtigsøk om en bestemt oppdateringspakken er installert. Metoden OSVERSIONINFOEX.wProductType kan også oppdage om operativsystemet er en arbeidsstasjon, en server eller domenekontroller.
  • C# og VB.NET koden returnerer egenskapen System.Environment.OSVersion et OperatingSystem -objekt som inneholder gjeldende plattform-ID og versjonsnummer.

    Obs! Hvis du vil ha mer informasjon om egenskapen System.Environment.OSVersion , kan du gå til følgende Microsoft-webområde:Obs! Hvis du vil ha mer informasjon om OperatingSystem -klassen, kan du gå til følgende Microsoft-webområde:Du kan bruke disse tallene til å bestemme Hurtigsøk det gjeldende operativsystemet og om en bestemt Service Pack er installert.

Finne ut om operativsystemet er en 64-biters operativsystem


  • Hvis en prosess som kjører en 64-biters prosess, må operativsystemet for C++-kode, et 64-biters operativsystem. Hvis du vil finne et program om et 32-biters program kjører på 64-biters operativsystem, kan du bruke funksjonen IsWow64Process .
  • For C# og VB.NET koden angir egenskapen Environment.Is64BitOperatingSystem i .NET Framework 4 om gjeldende operativsystem er et 64-biters operativsystem.

    Obs! Hvis du vil ha mer informasjon om egenskapen Environment.Is64BitOperatingSystem , kan du gå til følgende Microsoft-webområde:

Finne ut om en prosess er en 64-biters-prosess

Hvis du vil finne ut om en prosess som kjører en 64-biters-prosessen, kan du kjøre returnerer følgende kode til å bestemme boolsk verdi ved hjelp av VC ++ forprosessor symboler:

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


Du kan også bruke egenskapen Environment.Is64BitProcess i .NET Framework 4 Hvis du kjører C# eller VB.NET kode.

Obs! Hvis du vil ha mer informasjon om egenskapen Environment.Is64BitProcess , kan du gå til følgende Microsoft-webområde:
Hvis du vil finne ut om et vilkårlig program er en 64-biters-prosessen, må du finne ut om den OS -biten er 64-biters. Hvis du vil gjøre dette, bruker du metoden IsWow64Process() sammen med mål-prosessreferanse.

Teknologi-kategori

  • Windows Base

Språk

Dette kodeeksemplet viser følgende programmeringsspråk.
SpråkProsjektnavn
Visual C++ .NETCppPlatformDetector
Visual C#CSPlatformDetector
Visual Basic .NETVBPlatformDetector

Forutsetninger

  • Dette eksempelprogrammet er opprettet ved hjelp av Visual Studio 2010 og .NET Framework 4.

Hvis du vil ha mer informasjon


Hva er rammeverk for alt-i-ett-kode?

Rammeverk for alt-i-ett-kode bruker kodeeksempler i programmeringsspråk for å illustrere de fleste utviklingsteknikker for Microsoft. Hver kodeeksemplet er nøye valgt, satt sammen og dokumentert for å vise vanlige scenarier for koden. Hvis du vil ha mer informasjon om rammeverk for alt-i-ett-kode, kan du gå til følgende webområde for alt-i-ett-rammeverk kode:

Slik finner du mer alt-i-ett-kode Framework-eksempler

Hvis du vil finne mer alt-i-ett-rammeverk kode eksempler, Søk etter "kbcodefx" sammen med beslektede nøkkelord på Microsoft-webområde for kundestøtte. Eller, kan du gå til følgende Microsoft-webområde:

Referanser


Hvis du vil ha mer informasjon om hvordan du programmatisk oppdage om du kjører på 64-biters Windows, kan du gå til følgende webområde:
Rask publisering ansvarsfraskrivelse
Microsoft corporation og/eller dets respektive leverandører gir ingen uttalelser om egnetheten, pålitelighet eller nøyaktigheten av informasjon og relatert grafikk i dette dokumentet. All slik informasjon og relatert grafikk er levert "som den er" uten garantier av noe slag. Microsoft og/eller dets respektive leverandører fraskriver seg alle garantier og betingelser med hensyn til denne informasjonen herved og relatert grafikk, inkludert alle stilltiende garantier og betingelser for salgbarhet, anvendelighet for særskilte formål, rimelig innsats, tittel og overholdelse. Du godtar spesielt at ikke i noe tilfelle skal Microsoft og/eller dets leverandører være ansvarlig for noen direkte, indirekte, indirekte, tilfeldige, spesielle, konsekvensielle skader eller noen skader inkludert, uten begrensning, erstatning for tap av bruk, data eller inntekter, som oppstår som følge av eller på noen måte knyttet til bruken av eller manglende evne til å bruke informasjon og relatert grafikk i dette materialet, enten basert på kontrakt, subjektivt ansvar, uaktsomhet, objektivt ansvar eller annen måte, selv om Microsoft eller noen av dets leverandører er blitt underrettet om muligheten for skader.