如何获得WM5,CE设备号
来源:互联网 发布:js定义json数组对象 编辑:程序博客网 时间:2024/05/16 12:25
#include <uniqueid.h>
#define MAX_LOADSTRING 100
BOOL GetDeviceID( GUID* pGuid)
{
BOOL fRes;
DWORD dwBytesReturned =0;
DEVICE_ID* pDevID;
int wSize;
if (NULL == pGuid)
return FALSE;
memset(pGuid, 0, sizeof(GUID));
pDevID = (DEVICE_ID*)malloc(sizeof(DEVICE_ID));
memset(pDevID, 0, sizeof(DEVICE_ID));
pDevID->dwSize = sizeof(DEVICE_ID);
fRes = KernelIoControl( IOCTL_HAL_GET_DEVICEID, NULL, 0,
pDevID, sizeof( DEVICE_ID ), &dwBytesReturned );
wSize = pDevID->dwSize;
free(pDevID);
if( (FALSE != fRes) || (ERROR_INSUFFICIENT_BUFFER != GetLastError()))
return FALSE;
pDevID = (DEVICE_ID*)malloc(wSize);
memset(pDevID, 0, sizeof(wSize));
pDevID->dwSize = wSize;
fRes = KernelIoControl( IOCTL_HAL_GET_DEVICEID, NULL, 0,
pDevID, wSize, &dwBytesReturned );
if((FALSE == fRes) || (ERROR_INSUFFICIENT_BUFFER == GetLastError()) )
return FALSE;
BYTE* pDat = (BYTE*)&pGuid->Data1;
BYTE* pSrc = (BYTE*)(pDevID) + pDevID->dwPresetIDOffset;
memcpy(pDat, pSrc, pDevID->dwPresetIDBytes);
pDat += pDevID->dwPresetIDBytes;
pSrc = (BYTE*)(pDevID) + pDevID->dwPlatformIDOffset;
memcpy(pDat, pSrc, pDevID->dwPlatformIDBytes);
return true;
}
void OnButton1()
{
GUID gid;
WCHAR szData[MAX_LOADSTRING];
GetDeviceID(&gid);
StringFromGUID2(gid, szData, MAX_LOADSTRING);
// AfxMessageBox(szData);
}
// 我稍微改了下
// 获得结构体型GUID
bool GetDeviceID( GUID* pGuid)
{
if (NULL == pGuid)
return false;
BOOL fRes;
DWORD dwBytesReturned =0;
int wSize = 255;
DEVICE_ID* pDevID;
memset(pGuid, 0, sizeof(GUID));
BYTE arrOutBuff[MAX_LOADSTRING]={0};
fRes = KernelIoControl( IOCTL_HAL_GET_DEVICEID, NULL, 0,
arrOutBuff, MAX_LOADSTRING, &dwBytesReturned );
wSize = dwBytesReturned;
pDevID = (DEVICE_ID*)malloc(wSize);
memset(pDevID, 0, wSize);
fRes = KernelIoControl( IOCTL_HAL_GET_DEVICEID, NULL, 0,
pDevID, wSize, &dwBytesReturned );
if((FALSE == fRes) || (ERROR_INSUFFICIENT_BUFFER == GetLastError()) )
return false;
BYTE* pDat = (BYTE*)&pGuid->Data1;
BYTE* pSrc = (BYTE*)(pDevID) + pDevID->dwPresetIDOffset;
memcpy(pDat, pSrc, pDevID->dwPresetIDBytes);
pDat += pDevID->dwPresetIDBytes;
pSrc = (BYTE*)(pDevID) + pDevID->dwPlatformIDOffset;
memcpy(pDat, pSrc, pDevID->dwPlatformIDBytes);
free(pDevID);
return true;
}
// 获得GUID
bool GetWM5DiveceUniqueID( char* sData)
{
// Get struct GUID
GUID gid;
if ( !GetDeviceID(&gid) )
return false;
// Get wchar_t GUID
TCHAR szData[MAX_LOADSTRING] = {0};
short nszDataLen = StringFromGUID2(gid, szData, MAX_LOADSTRING) -1;
// delete {}
for(int i=0; i<nszDataLen; i++)
{
szData[i] = szData[i+1];
}
szData[nszDataLen-2] = 0;
// wchar_t to char ... BT
for(int i=0; i<nszDataLen-2; i++)
{
sData[i] = (char)szData[i];
}
return true;
}
- 如何获得WM5,CE设备号
- 转载:获得WM5,CE设备号
- wm5获得电池状态信息
- 如何获得手机设备ID
- C#如何获得设备Mac地址
- 如何获得ios设备的硬件名称
- 如何获得当前设备的名称
- 如何获得设备分辨率使用命令行
- WM5仿真设备的调试遇到的问题
- P设备 PE设备 CE设备
- 如何获得WM设备信息,如型号、操作系统版本等
- 如何获得ios设备中的硬件信息(下)
- 如何获得设备环境句柄(HDC)--Win32 SDK
- 如何获得Android设备名称(ADB命令详细介绍)
- 如何获得Android设备名称(ADB命令详细介绍)
- 如何获得设备环境句柄(HDC)--Win32 SDK
- ios 如何获得唯一手机设备的唯一标示UUID
- 如何获得Android设备名称(ADB命令详细介绍)
- webwork配置项的顺序问题
- 利用开源项目Hibernate开发Blog系统
- 在Spring中集成Hibernate事务
- tomcat 提示 JSP 文件找不到
- linux 下运行rm -rf /的后果
- 如何获得WM5,CE设备号
- PocketPC - EVC开发技巧大集合
- 缓冲区溢出
- MFC的框架如何隐藏输入法
- WINCE音量调节(适用于智能设备)
- 有10亿个浮点数,从中找出1万个最大的数。
- 成员函数 指针
- WinCE 应用程序开机自动运行的又一种方法
- 用pfile启动oracle数据库