2010-09-15 79 views
2

我想从运行我的应用的设备获取有关设备,操作系统等的一些信息。 我需要记录这些数据,以便稍后可以运行一些诊断。有关设备,平台等的信息

现在我认为这个数据位于Microsoft.Win32.Registry但是这意味着我需要知道的所有访问值的键。

有什么想法?

+0

我不确定它是否存在于CF中,但通常'Environment'-Type有很多关于系统的信息。 – Bobby 2010-09-15 09:46:36

回答

4

这取决于你想要什么信息,但你可能想的P/Invoke SystemParametersInfo与像SPI_GETOEMINFO,SPI_GETPLATFORMMANUFACTURER,SPI_GETPLATFORMNAME,SPI_GETPLATFORMTYPE和SPI_GETPLATFORMVERSION参数。

MSDN has an example here

编辑

这里有一些价值你:

#define SPI_GETPLATFORMTYPE 257 
#define SPI_GETOEMINFO 258 
#define SPI_GETPROJECTNAME 259 
#define SPI_GETPLATFORMNAME 260 
#define SPI_GETBOOTMENAME 261 
#define SPI_GETPLATFORMMANUFACTURER 262 
#define SPI_GETUUID 263 
#define SPI_GETGUIDPATTERN 264 

对于版本我只是拉Environment.OSVersion.Version并比较this version list

+0

thanx再ctacke!我唯一的问题是获取SPI_GETPLATFORMVERSION。也许我想错了,但我需要得到什么版本的操作系统是客户端运行。我已经检查winuser.h文件列出了这些东西,但我无法找到任何可以让我获得操作系统版本的东西。任何想法? – no9 2010-09-16 06:57:13

+0

我用System.Environment.OSVersion.Version.ToString()获得了操作系统版本; Thanx再次ctacke! – no9 2010-09-16 11:08:38