找出在XP嵌入式上运行

时间:2009-09-09 11:09:21

标签: language-agnostic windows-xp embedded

有没有办法确定我的程序是否在XP嵌入式上运行?我已经尝试过.NET System.Environment.OSVersion,但版本信息看起来像是“普通”Windows XP的版本信息,除了次要版本号,依赖于它似乎对我来说很脆弱。

1 个答案:

答案 0 :(得分:3)

Egg Head Cafe上的Microsoft eMVP(Bing Chen)建议GetVersionEx and a particular version registry key ......

  

1。调用API

BOOL GetVersionEx(LPOSVERSIONINFO lpVersionInfo);
     

OSVERSIONINFOEX结构(即   这个电话的输出)

     

其中一名成员是wSuiteMask(a   WORD变量)。

     

检查VER_SUITE_EMBEDDEDNT   (0x00000040)此变量中的标志。

     

2。注册表中的查询值

 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Product-Options]
Key Name:   ProductSuite Type:
MULTI_SZ Value: EmbeddedNT
(在XP专业版中,似乎没有   此密钥中的内容)

Helen Elcock建议looking for the FBA registry value

  

我检查DWORD注册值

     

[HKEY_LOCAL_MACHINE\SYSTEM\FBA]

     

您只能在嵌入式设备上获得第一个启动助手。

GetVersionEx似乎是更稳定的方法,因为某人可能删除FBA密钥以努力保存另外几个字节,但我不确定删除该密钥是否会导致FBA运行无论如何。无论采用哪种方法,你都可能没事。