delphi 修改盘符名称


本文整理自网络,侵删。

  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 windows 编程[1] - 窗体生成的过程一

Delphi qr /条形码扫描仪应用示例代码(使用zxing,tframestand)

Delphi idtcpclient和idtcpserver主要属性

Delphi 10.3 断点调试相关快捷键

Delphi 最快字符串查找(匹配)算法

Delphi closefile 关闭文件

Delphi winsock 域名获取远程服务器ip

Delphi uses 子句的写法

Delphi Delphi 学习大师qq群讨论的字符串位置替换方法

Delphi文件监视主单元文件

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...