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 ide 默认保存路径设置

Delphi 文件/流的加密解密方法

Delphi fmx 安卓跳转到支付宝付款页面

Delphi 安卓程序如何读取外部配置文件

Delphi判断系统是否64位

Delphi中进行指纹仪的二次开发

Delphi 2010 fastmm 内存泄露使用方法

Delphi 网上获取北京时间idhttpserver and idhttp 使用 encoding utf8

Delphi 调用系统图片查看器

Delphi与sqlite3数据库

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



打赏

取消

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

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

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

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

评论

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