wince中如何獲取pda的id碼

    技术2022-05-11  63

    在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.exePROCESS_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 fileHANDLE 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);}  

    最新回复(0)