function TForm1.EjectMedia(DriveLetter: String): Boolean; var hr:THandle; buffer: Cardinal; begin hr := CreateFile(PChar('\\.\'+DriveLetter+':'),GENERIC_READ,FILE_SHARE_READ or FILE_SHARE_WRITE,NIL,OPEN_EXISTING,0,0); if hr <> INVALID_HANDLE_VALUE then if DeviceIOControl(hr,IOCTL_STORAGE_EJECT_MEDIA,NIL,0,NIL,0,buffer,NIL) then result := true else result := false; CloseHandle(hr); end;
hr := CreateFile(PChar('\\.\'+DriveLetter+':'),GENERIC_READ,FILE_SHARE_READ or FILE_SHARE_WRITE,NIL,OPEN_EXISTING,0,0); 在PChar('\\.\'+DriveLetter+':')中使用('\\.\'+‘u盘盘符’+':')使用不行。 u盘的图标仍在,u盘中的内容仍然可以读写。
email:[email protected] hr <> INVALID_HANDLE_VALUE then hr等于INVALID_HANDLE_VALUE,直接到CloseHandle(hr),结束函数
var
hr:THandle;
buffer: Cardinal;
begin
hr := CreateFile(PChar('\\.\'+DriveLetter+':'),GENERIC_READ,FILE_SHARE_READ or FILE_SHARE_WRITE,NIL,OPEN_EXISTING,0,0);
if hr <> INVALID_HANDLE_VALUE then
if DeviceIOControl(hr,IOCTL_STORAGE_EJECT_MEDIA,NIL,0,NIL,0,buffer,NIL) then
result := true else result := false;
CloseHandle(hr);
end;
在PChar('\\.\'+DriveLetter+':')中使用('\\.\'+‘u盘盘符’+':')使用不行。
u盘的图标仍在,u盘中的内容仍然可以读写。
hr等于INVALID_HANDLE_VALUE,直接到CloseHandle(hr),结束函数
EMAIL已发, ID号好像JEDI控件里有
hr =INVALID_HANDLE_VALUE,下面执行不了