天天看點

wince中如何獲取pda的id碼

在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就在裡面, 這裡有一段程式專門幹這事:

*/

wince中如何獲取pda的id碼

CString GetSerialNumber()

wince中如何獲取pda的id碼
wince中如何獲取pda的id碼

... {

wince中如何獲取pda的id碼

// Start CreateAssetFile.exe

wince中如何獲取pda的id碼

PROCESS_INFORMATION pi;

wince中如何獲取pda的id碼

if (!::CreateProcess(TEXT("/windows/CreateAssetFile.exe"),

wince中如何獲取pda的id碼

NULL, NULL, NULL, FALSE, 0, NULL, NULL, NULL, &pi))

wince中如何獲取pda的id碼
wince中如何獲取pda的id碼

...{

wince中如何獲取pda的id碼

m_strCompaqIpaqId = _T("");

wince中如何獲取pda的id碼

m_strErrorMessage += _T("Cannot run /windows/CreateAssetFile.exe file.");

wince中如何獲取pda的id碼

return TEXT("");

wince中如何獲取pda的id碼

}

wince中如何獲取pda的id碼
wince中如何獲取pda的id碼

// Wait until CreateAssetFile.exe will be finished

wince中如何獲取pda的id碼

::WaitForSingleObject(pi.hProcess, INFINITE);

wince中如何獲取pda的id碼
wince中如何獲取pda的id碼

// Read data from cpqAssetData.dat file

wince中如何獲取pda的id碼

HANDLE hInFile;

wince中如何獲取pda的id碼

TCHAR strSN[65];

wince中如何獲取pda的id碼

DWORD dwBytesRead;

wince中如何獲取pda的id碼

hInFile = CreateFile(TEXT("/windows/cpqAssetData.dat"), GENERIC_READ,

wince中如何獲取pda的id碼

FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);

wince中如何獲取pda的id碼
wince中如何獲取pda的id碼
wince中如何獲取pda的id碼

if (hInFile == INVALID_HANDLE_VALUE) ...{

wince中如何獲取pda的id碼

m_strCompaqIpaqId = _T("");

wince中如何獲取pda的id碼

m_strErrorMessage += _T("Cannot read /windows/cpqAssetData.dat file.");

wince中如何獲取pda的id碼

return TEXT("");

wince中如何獲取pda的id碼

}

wince中如何獲取pda的id碼
wince中如何獲取pda的id碼

SetFilePointer(hInFile, 976, NULL, FILE_BEGIN);

wince中如何獲取pda的id碼

memset(strSN, 0, 64 * sizeof(TCHAR));

wince中如何獲取pda的id碼

ReadFile(hInFile, &strSN, 64, &dwBytesRead, NULL);

wince中如何獲取pda的id碼

CloseHandle(hInFile);

wince中如何獲取pda的id碼
wince中如何獲取pda的id碼

return CString(strSN);

wince中如何獲取pda的id碼

}