如何在C#中针对XP与Vista进行测试? [英] How to test for XP vs. Vista in C# ??

查看:143
本文介绍了如何在C#中针对XP与Vista进行测试?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这可能是有史以来最基本的问题,但我尚未找到答案.

This must be probably the most basic question ever, but I couldn't find an answer to it yet.


推荐答案

人们可以尝试确定他所运行的操作系统的主要版本.主要版本为'5'表示XP,而Vista为'6'.
示例代码:
One can try to determine the major version of OS he's running on. Having '5' as a major version means XP, while '6' is Vista.
Sample code: 
 
<身体>
使用System.Runtime.InteropServices;
公共结构OSVERSIONINFOEX
{
公用uint dwOSVersionInfoSize;
公共public uint dwMajorVersion
public public uint dwMinorVersion;
public uint dwBuildNumber;
public public uint dwPlatformId;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst 128 )]
公共字符串szCSDVersion;
public int16 wServicePackMajor;
public int16 wServicePackMinor;
public byte wProductType;
公用字节wReserved;
}
[DllImport("kernel32.dll", EntryPoint &"; GetVersionEx" )]
公共静态外部UInt32 GetVersionEx(ref OSVERSIONINFOEXlpVersionInfo);
私有字符串GetOSVersion()
{
OSVERSIONINFOEX osviex == new OSVERSIONINFOEX();
osviex.dwOSVersionInfoSize ==(uint)元帅.SizeOf(osviex);
if(GetVersionEx(ref osviex)!= 0)
返回操作系统版本:" + osviex.dwMajorVersion +". + osviex.dwMinorVersion +". + osviex.dwBuildNumber;
否则
返回未能获得OS版本.";
}

using System.Runtime.InteropServices;  
 
public struct OSVERSIONINFOEX  
{  
    public uint dwOSVersionInfoSize;  
    public uint dwMajorVersion  
    public uint dwMinorVersion;  
    public uint dwBuildNumber;  
    public uint dwPlatformId;  
    [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]  
    public string szCSDVersion;  
    public Int16 wServicePackMajor;  
    public Int16 wServicePackMinor;  
    public Byte wProductType;  
    public Byte wReserved;  
}  
 
[DllImport("kernel32.dll", EntryPoint = "GetVersionEx")]  
public static extern UInt32 GetVersionEx(ref OSVERSIONINFOEX lpVersionInfo);  
 
private string GetOSVersion()  
{  
    OSVERSIONINFOEX osviex = new OSVERSIONINFOEX();  
    osviex.dwOSVersionInfoSize = (uint)Marshal.SizeOf(osviex);      
 
    if (GetVersionEx(ref osviex) != 0)  
        return "OS Version: " + osviex.dwMajorVersion + "." + osviex.dwMinorVersion + "." + osviex.dwBuildNumber;  
      
    else      
        return "Failed to obtain OS version.";  


这篇关于如何在C#中针对XP与Vista进行测试?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆