Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ManagementObjectSearcher mos = new ManagementObjectSearcher("Select * From Win32_OperatingSystem");
- // ...
- // Select number from managementobject mo["SerialNumber"]
- #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("");
- }
- }
- [DllImport("coredll.dll")]
- public static extern bool KernelIoControl(long dwIoControlCode, IntPtr lpInBuff, long dwInBuffSize, IntPtr lpOutBuff, long dwOutBuffSize, IntPtr lpBytesReturned);
- if(Environment.OSVersion.Platform == PlatformID.WinCE) { ... }
Add Comment
Please, Sign In to add comment