Jak zjistit úroveň Operating System Service Pack v Visual C# .NET

ID článku: 304721 - Produkty, které se vztahují k tomuto článku.
Microsoft Visual Basic .NET verzi tohoto článku naleznete 304722.
Microsoft Visual C++ .NET verzi tohoto článku naleznete 307393.

Tento článek se týká následujícího oboru názvů knihovny tříd technologie Microsoft .NET Framework:
  • System.Runtime.InteropServices
Rozbalit všechny záložky | Minimalizovat všechny záložky

Souhrn

Tento článek ukazuje, jak sestavit metoda GetServicePack.

Další informace

Vlastnost OSVersion, která je k dispozici pro získání informací) operačního systému neobsahuje člen, který poskytuje informace o aktualizaci service Pack. Chcete-li zjistit, jaké aktualizace service pack nainstalována, je třeba zavolat funkci GetVersionEx API přímo. Obvykle je lepší se vyhnout toto cvičení, .NET Framework poskytuje přístup k podkladové sady API v mnohem více konzistentní (a snadnější použití) způsobem než pomocí volání jednotlivých funkcí API.

Při musí volání funkce API přímo, můžete provést prostřednictvím voláním Interop vrstvy .NET Framework. Ukázkový kód v tomto článku poskytuje metodu GetServicePack, který vrací úroveň aktualizace service Pack.

Poznámka: OSVERSIONINFO struktura obsahuje řetězec pevné délky szCSDVersion. Protože již nejsou podporovány řetězce pevné délky, musíte poskytnout informace o mezipaměti sdružených dat pro tento člen. To lze provést pomocí atributu (označený pomocí []) předcházející název člena.
  1. Otevřít nové aplikace konzoly C# .NET.
  2. Otevřete okno kód class1.cs a potom odstraňte kód.
  3. Vložit následující ukázkový kód class1.cs:
    using System;
    using System.Reflection;
    using System.Runtime.InteropServices;
    
    class Class1
    {
        static void Main(string[] args)
        {
    	Console.WriteLine(GetServicePack());
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct OSVERSIONINFO 
        {
    	public int dwOSVersionInfoSize;
    	public int dwMajorVersion;
    	public int dwMinorVersion;
    	public int dwBuildNumber;
    	public int dwPlatformId;
    	[MarshalAs(UnmanagedType.ByValTStr, SizeConst=128)]
    	public string szCSDVersion;
        }
        [DllImport("kernel32.Dll")] public static extern short GetVersionEx(ref OSVERSIONINFO o);
        static public  string GetServicePack()
        {
    	OSVERSIONINFO os = new OSVERSIONINFO();
    	os.dwOSVersionInfoSize=Marshal.SizeOf(typeof(OSVERSIONINFO)); 
    	GetVersionEx(ref os);
    	if (os.szCSDVersion=="")					 
        	    return "No Service Pack Installed";
    	else
       	    return os.szCSDVersion;
        }
    }
    					
  4. Stiskněte klávesy CTRL + F5 sestavit a spustit projektu. V okně konzoly se zobrazí informace o aktualizaci service Pack.

Vlastnosti

ID článku: 304721 - Poslední aktualizace: 6. října 2004 - Revize: 1.3
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Visual C# .NET 2002 Standard Edition
Klíčová slova: 
kbmt kbhowto kbsample KB304721 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:304721

Dejte nám zpětnou vazbu