Distinguish XPE from XPPRO

  • Thread starter Thread starter Francesco
  • Start date Start date
F

Francesco

Is there a way to distinguish calling some software functions XP embedded
from XP professional ?
I would like to be sure that my program runs only on xp embedded but using
the OperatingSystem class (C#) the returned values are the same for XP pro
and XPE.

Any suggestions ?
Thanks
 
Francesco said:
Is there a way to distinguish calling some software functions XP
embedded from XP professional ?

I suspect there isn't. Hopefully one of the experts will pass by.

If you are building the image yourself, you could put an obscure
registry entry in the image that your app could look for.

Another possibility is to check for EWF if you use it or another
embedded enabling feature. Of course, both of these are not
particularly secure methods.

The way we solve the problem is with a custom microcontroller since we
need the uC anyway for other functions. This makes sure our software
will only run on our hardware.
 
Francesco,
You can call the Win32 API GetVersionEx. If you look at the MSDN
documentation for the OSVERSIONINFOEX structure (which is the output of this
call), you'll notice that one of the members is wSuiteMask (a WORD
variable). Check the VER_SUITE_EMBEDDEDNT (0x00000040) flag in this
variable.
Thanks,
Oren
 
Dear Francesco,

There is another way to distinguish between XP Pro and XPE with the
registry value.

[HKEY_LOCAL_MACHINE\SYSTEM\Cur­rentControlSet\Control\Product­Options]


Key Name: ProductSuite


Type: MULTI_SZ


Value: EmbeddedNT
(In XP Pro, it seems that no content in this key)



--
Best Regards,
Bing Chen
Advantech Co., Ltd.
Microsoft eMVP

?? - ???????????????
http://www.advantech.com.tw/epc/newsletter/ATW/2005MS/
 
Instead of the registry, I create an environment variable when I made the
Xpe image, and use that as a key to tell me if my application is run from
XPe or XP Pro.

Simple, maybe to simple but it works, and I'm not worried about someone
changing that variable/
 
Back
Top