本文整理自网络,侵删。
DOS命令的
set old=K:
set new=E:
for /f %%i in ('mountvol %old% /l') do set "vol=%%i"
mountvol %old% /d
mountvol %new% %vol%
popd
delphi的
_DeleteVolumeMountPoint:function(lpszVolumeMountPoint:LPCSTR):BOOL;stdcall;
_SetVolumeMountPoint:function(lpszVolumeMountPoint:LPCSTR;lpszVolumeName:LPCSTR):BOOL;stdcall;
_GetVolumeNameForVolumeMountPoint:function(lpszVolumeMountPoint:LPCSTR;lpszVolumeName:LPSTR;cchBufferLength:DWORD):BOOL;stdcall;
Procedure GetVolumeNameForVolumeMountPoint(lpszVolumeMountPoint:LPCSTR;lpszVolumeName:LPSTR;cchBufferLength:DWORD);
var
Kernel32:THandle;
begin
Kernel32:=0;
Kernel32:=GetModuleHandle(PChar('kernel32.dll'));
if Kernel32 <> 0 then
begin
@_GetVolumeNameForVolumeMountPoint:=GetProcAddress(Kernel32,PChar('GetVolumeNameForVolumeMountPointA'));
end;
if Assigned(_GetVolumeNameForVolumeMountPoint) then
begin
_GetVolumeNameForVolumeMountPoint(lpszVolumeMountPoint,lpszVolumeName,cchBufferLength);
end;
end;
Procedure SetVolumeMountPoint(lpszVolumeMountPoint:LPCSTR;lpszVolumeName:LPCSTR);
var
Kernel32:THandle;
begin
Kernel32:=0;
Kernel32:=GetModuleHandle(PChar( 'kernel32.dll'));
if Kernel32 <> 0 then
begin
@_SetVolumeMountPoint :=GetProcAddress(Kernel32,PChar( 'SetVolumeMountPointA'));
end;
if Assigned(_SetVolumeMountPoint) then
begin
_SetVolumeMountPoint(lpszVolumeMountPoint,lpszVolumeName);
end;
end;
Procedure DeleteVolumeMountPoint(lpszVolumeMountPoint:LPCSTR);
var
Kernel32:THandle;
begin
Kernel32:=0;
Kernel32:=GetModuleHandle(PChar( 'kernel32.dll'));
if Kernel32 <> 0 then
begin
@_DeleteVolumeMountPoint:=GetProcAddress(Kernel32,PChar('DeleteVolumeMountPointA'));
end;
if Assigned(_DeleteVolumeMountPoint) then
begin
_DeleteVolumeMountPoint(lpszVolumeMountPoint);
end;
end;
procedure CharDiskName(OldName:string;NewName:string);
var
VolumeName: array [0..MAX_PATH] of Char;
begin
GetVolumeNameForVolumeMountPoint(PChar(OldName), VolumeName,MAX_PATH);
DeleteVolumeMountPoint(PChar(OldName));
SetVolumeMountPoint(PChar(NewName), VolumeName);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
CharDiskName('K:\','E:\');
end;
相关阅读 >>
Delphi 网上获取北京时间idhttpserver and idhttp 使用 encoding utf8
更多相关阅读请进入《Delphi》频道 >>