有没有办法确定我的程序是否在XP嵌入式上运行?我已经尝试过.NET System.Environment.OSVersion,但版本信息看起来像是“普通”Windows XP的版本信息,除了次要版本号,依赖于它似乎对我来说很脆弱。
答案 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:(在XP专业版中,似乎没有 此密钥中的内容)
MULTI_SZ Value: EmbeddedNT
Helen Elcock建议looking for the FBA registry value:
我检查DWORD注册值
[HKEY_LOCAL_MACHINE\SYSTEM\FBA]
您只能在嵌入式设备上获得第一个启动助手。
GetVersionEx似乎是更稳定的方法,因为某人可能删除FBA密钥以努力保存另外几个字节,但我不确定删除该密钥是否会导致FBA运行无论如何。无论采用哪种方法,你都可能没事。