100分求读SD卡序列号代码,该如何处理
100分求读SD卡序列号代码
100分求读SD卡序列号代码
非常感谢
------解决方案--------------------
应该是硬件附带的驱动才可以吧
------解决方案--------------------
用IOCTL_DISK_GET_STORAGEID ,這應該是手機操作系統的,不知道pc操作系統是否有提供。
參考msdn描述http://msdn.microsoft.com/en-us/library/ms901392.aspx
------解决方案--------------------
你用DeviceIoControl,傳IOCTL_STORAGE_GET_MEDIA_TYPES 看能不能得到
------解决方案--------------------
我有取U盘号的,不知道修改后能不能读到SD卡的号,理论上他们都是移动盘,应该可以.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Registry;
function GetUSBDiskID(const DiskID:string; var PID:string):Boolean;
implementation
const
DIGCF_PRESENT = $00000002;
DIGCF_DEVICEINTERFACE = $00000010;
ANYSIZE_ARRAY = 1;
SetupAPI = 'SetupAPI.DLL';
type
HDEVINFO = Pointer;
ULONG_PTR = DWORD;
PSPDevInfoData = ^TSPDevInfoData;
SP_DEVINFO_DATA = packed record
cbSize:DWORD;
ClassGuid:TGUID;
DevInst:DWORD;
Reserved:ULONG_PTR;
end;
{$EXTERNALSYM SP_DEVINFO_DATA}
TSPDevInfoData = SP_DEVINFO_DATA;
PSPDeviceInterfaceData = ^TSPDeviceInterfaceData;
SP_DEVICE_INTERFACE_DATA = packed record
cbSize:DWORD;
InterfaceClassGuid:TGUID;
Flags:DWORD;
Reserved:ULONG_PTR;
end;
{$EXTERNALSYM SP_DEVICE_INTERFACE_DATA}
TSPDeviceInterfaceData = SP_DEVICE_INTERFACE_DATA;
PSPDeviceInterfaceDetailDataA = ^TSPDeviceInterfaceDetailDataA;
SP_DEVICE_INTERFACE_DETAIL_DATA_A = packed record
cbSize:DWORD;
DevicePath:array[0..ANYSIZE_ARRAY - 1] of AnsiChar;
end;
{$EXTERNALSYM SP_DEVICE_INTERFACE_DETAIL_DATA_A}
TSPDeviceInterfaceDetailDataA = SP_DEVICE_INTERFACE_DETAIL_DATA_A;
function SetupDiGetClassDevsA(ClassGuid:PGUID; const Enumerator:PAnsiChar;
hwndParent:HWND; Flags:DWORD):HDEVINFO; Stdcall; External SetupAPI;
function SetupDiEnumDeviceInterfaces(DeviceInfoSet:HDEVINFO;
DeviceInfoData:PSPDevInfoData; const InterfaceClassGuid:TGUID;
MemberIndex:DWORD; var DeviceInterfaceData:TSPDeviceInterfaceData):BOOL;
Stdcall; External SetupAPI;
{$EXTERNALSYM SetupDiEnumDeviceInterfaces}
function SetupDiGetDeviceInterfaceDetailA(DeviceInfoSet:HDEVINFO;
DeviceInterfaceData:PSPDeviceInterfaceData;
DeviceInterfaceDetailData:PSPDeviceInterfaceDetailDataA;
DeviceInterfaceDetailDataSize:DWORD; var RequiredSize:DWORD;
Device:PSPDevInfoData):BOOL; Stdcall; External SetupAPI;
function SetupDiDestroyDeviceInfoList(DeviceInfoSet:HDEVINFO):BOOL; Stdcall;
External SetupAPI;
100分求读SD卡序列号代码
非常感谢
------解决方案--------------------
应该是硬件附带的驱动才可以吧
------解决方案--------------------
用IOCTL_DISK_GET_STORAGEID ,這應該是手機操作系統的,不知道pc操作系統是否有提供。
參考msdn描述http://msdn.microsoft.com/en-us/library/ms901392.aspx
------解决方案--------------------
你用DeviceIoControl,傳IOCTL_STORAGE_GET_MEDIA_TYPES 看能不能得到
------解决方案--------------------
我有取U盘号的,不知道修改后能不能读到SD卡的号,理论上他们都是移动盘,应该可以.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Registry;
function GetUSBDiskID(const DiskID:string; var PID:string):Boolean;
implementation
const
DIGCF_PRESENT = $00000002;
DIGCF_DEVICEINTERFACE = $00000010;
ANYSIZE_ARRAY = 1;
SetupAPI = 'SetupAPI.DLL';
type
HDEVINFO = Pointer;
ULONG_PTR = DWORD;
PSPDevInfoData = ^TSPDevInfoData;
SP_DEVINFO_DATA = packed record
cbSize:DWORD;
ClassGuid:TGUID;
DevInst:DWORD;
Reserved:ULONG_PTR;
end;
{$EXTERNALSYM SP_DEVINFO_DATA}
TSPDevInfoData = SP_DEVINFO_DATA;
PSPDeviceInterfaceData = ^TSPDeviceInterfaceData;
SP_DEVICE_INTERFACE_DATA = packed record
cbSize:DWORD;
InterfaceClassGuid:TGUID;
Flags:DWORD;
Reserved:ULONG_PTR;
end;
{$EXTERNALSYM SP_DEVICE_INTERFACE_DATA}
TSPDeviceInterfaceData = SP_DEVICE_INTERFACE_DATA;
PSPDeviceInterfaceDetailDataA = ^TSPDeviceInterfaceDetailDataA;
SP_DEVICE_INTERFACE_DETAIL_DATA_A = packed record
cbSize:DWORD;
DevicePath:array[0..ANYSIZE_ARRAY - 1] of AnsiChar;
end;
{$EXTERNALSYM SP_DEVICE_INTERFACE_DETAIL_DATA_A}
TSPDeviceInterfaceDetailDataA = SP_DEVICE_INTERFACE_DETAIL_DATA_A;
function SetupDiGetClassDevsA(ClassGuid:PGUID; const Enumerator:PAnsiChar;
hwndParent:HWND; Flags:DWORD):HDEVINFO; Stdcall; External SetupAPI;
function SetupDiEnumDeviceInterfaces(DeviceInfoSet:HDEVINFO;
DeviceInfoData:PSPDevInfoData; const InterfaceClassGuid:TGUID;
MemberIndex:DWORD; var DeviceInterfaceData:TSPDeviceInterfaceData):BOOL;
Stdcall; External SetupAPI;
{$EXTERNALSYM SetupDiEnumDeviceInterfaces}
function SetupDiGetDeviceInterfaceDetailA(DeviceInfoSet:HDEVINFO;
DeviceInterfaceData:PSPDeviceInterfaceData;
DeviceInterfaceDetailData:PSPDeviceInterfaceDetailDataA;
DeviceInterfaceDetailDataSize:DWORD; var RequiredSize:DWORD;
Device:PSPDevInfoData):BOOL; Stdcall; External SetupAPI;
function SetupDiDestroyDeviceInfoList(DeviceInfoSet:HDEVINFO):BOOL; Stdcall;
External SetupAPI;