Microsoft  CSIP   WindowsMobile   MEDC   合作伙伴   体验中心 设为首页 加到收藏夹

 
登录       点击换一张     注册新用户 找回密码

几个有用的Windows Mobile相关方法
2008年08月04日10:15   编辑:yuewen 来源: 博客 浏览: 183

 

  1  取得设备ID。
 
  #include <WINIOCTL.H>

  extern "C" __declspec(dllimport)

  BOOL KernelIoControl(

    DWORD dwIoControlCode, LPVOID lpInBuf, DWORD nInBufSize,

    LPVOID lpOutBuf, DWORD nOutBufSize, LPDWORD lpBytesReturned

  );

  #define IOCTL_HAL_GET_DEVICEID CTL_CODE(FILE_DEVICE_HAL, 21, METHOD_BUFFERED, FILE_ANY_ACCESS)

  CString GetSerialNumberFromKernelIoControl()

  {

   DWORD dwOutBytes;

   const int nBuffSize = 4096;

   byte arrOutBuff[nBuffSize];

   BOOL bRes = ::KernelIoControl(IOCTL_HAL_GET_DEVICEID,

                                     0, 0, arrOutBuff, nBuffSize, &dwOutBytes);

   if (bRes) {

    CString strDeviceInfo;

    for (unsigned int i = 0; i<dwOutBytes; i++) {

     CString strNextChar;

     strNextChar.Format(TEXT("%02X"), arrOutBuff[i]);

     strDeviceInfo += strNextChar;

    }

    CString strDeviceId =

     strDeviceInfo.Mid(40,2) +

     strDeviceInfo.Mid(45,9) +

     strDeviceInfo.Mid(70,6);

    return strDeviceId;

   } else {

    return _T("");

   }

  }
 
  说明:Windows Mobile 5.0已经添加了专门的API完成此任务,对于2003以下的设备可以用此方法。此方法是否能取道ID还取决与硬件制造商是否已经实现了改方法。因为smartphone具备2-Tie安全性,所以此方法如果没有授权证书可能会调用失败。
 
  2  取得设备信息

  TCHAR wszMachineName[128];

   SystemParametersInfo(SPI_GETOEMINFO, sizeof(wszMachineName),

               &wszMachineName, 0);

  取得设备OEM信息。

  TCHAR wszVersion[256];

   SystemParametersInfo(SPI_GETPLATFORMTYPE, sizeof(wszVersion),

             &wszVersion, 0);


  取得平台信息。
 
  3  创建GUID

  CString CreateGUID()

  {

   TCHAR wGuid[37];

   SYSTEMTIME systime;

   FILETIME filetime;

    // construct GUID

   GetSystemTime(&systime);

   SystemTimeToFileTime(&systime,&filetime);

   DWORD tick=GetTickCount();

   DWORD highWord=filetime.dwHighDateTime+0x146BF4;

    // convert GUID to a string

   wsprintf(wGuid,TEXT("%08.8x-%04.4x-%04.4x-%04.4x-%04.4x%04.4x%04.4x"),

    filetime.dwLowDateTime,

    LOWORD(highWord),

    HIWORD(highWord |0x10000000),

    LOWORD(rand()),

    HIWORD(tick),

    LOWORD(tick),

    LOWORD(rand()));

   return CString(wGuid);

  }

发表评论
评论标题 :
评论内容 :

    查看评论

请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。 本站拥有管理笔名和留言的一切权利。
相关文章推荐
· 我的第一个WINCE驱动 2008-8-4  叶帆
· 单机搭建WinCE开发环境 2008-7-31  何建邦
· Windows Mobile 进阶系列之.WCF Mobile-3 2008-7-29  黄季冬
· 传微软将推ZunePhone 与iPhone展开竞争 2008-7-25  Alright 驱动之家
· 传微软将推ZunePhone 与iPhone展开竞争 2008-7-25  Alright 驱动之家

  

论坛推荐  
热点活动
更多»

© CSIP 信息产业部软件与集成电路促进中心 All Rights Reserved 版权所有 京ICP备06020771号
联系电话:010-63951881-8003 王先生        邮件:wangj@csip.org.cn