wince中如何獲取pda的id碼

来源:互联网 发布:天津软件开发公司 编辑:程序博客网 时间:2024/05/05 04:23
在PALM中﹐每台PDA都有唯一的ID碼﹐我想在WINCE中也應該有類似的ID碼﹐但如何在程序中獲取該ID碼﹖

 

答案就是PPC没有统一的Device ID
如果你为ipaq开发程序,那么两种方法可以取得device id:

1 Download Compaq iPAQ SDK 然后用 CPQInfoGetSerialNo function (定义在CPQInfo.h中)取得.

2 如果你只想用通用SDK,那么有一个取巧的办法,就是运行/windows/CreateAssetFile.exe ,然后读取自动生成的/windows/cpqAssetData.dat 文件, DeviceID就在里面, 这里有一段程序专门干这事:
*/
CString GetSerialNumber()
{
// Start CreateAssetFile.exe
PROCESS_INFORMATION pi;
if (!::CreateProcess(TEXT("/windows/CreateAssetFile.exe"),
NULL, NULL, NULL, FALSE, 
0, NULL, NULL, NULL, &pi))
{
m_strCompaqIpaqId 
= _T("");
m_strErrorMessage 
+= _T("Cannot run /windows/CreateAssetFile.exe file.");
return TEXT("");
}


// Wait until CreateAssetFile.exe will be finished
::WaitForSingleObject(pi.hProcess, INFINITE);

// Read data from cpqAssetData.dat file
HANDLE hInFile;
TCHAR strSN[
65];
DWORD dwBytesRead;
hInFile 
= CreateFile(TEXT("/windows/cpqAssetData.dat"), GENERIC_READ,
FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 
0);

if (hInFile == INVALID_HANDLE_VALUE) {
m_strCompaqIpaqId 
= _T("");
m_strErrorMessage 
+= _T("Cannot read /windows/cpqAssetData.dat file.");
return TEXT("");
}


SetFilePointer(hInFile, 
976, NULL, FILE_BEGIN);
memset(strSN, 
064 * sizeof(TCHAR));
ReadFile(hInFile, 
&strSN, 64&dwBytesRead, NULL);
CloseHandle(hInFile);

return CString(strSN);
}
 
原创粉丝点击