有时候我们会想到要修改硬盘盘符,那么如何修改硬盘盘符呢?
当您向计算机中添加驱动器(如额外的硬盘驱动器、CD驱动器或与驱动器相对应的存储设备)时, Windows将自动为其分配一个盘符。尽管如此, 这种分配方式可能无法满足您的系统需求, 举例来说, 您可能已经将Windows分配给一个新增驱动器的盘符映射到了一个网络驱动器上。当您需要对驱动器盘符进行修改时, 请依次执行下列操作步骤:
右键单击My Computer(我的电脑), 并选择Manage(管理)。
在Computer Management(计算机管理)窗口中, 单击Disk Management(磁盘管理)。在右侧窗格中, 您将看到系统中的驱动器列表。其中, CD-ROM驱动器被列在该窗格的最底部。
右键单击您所希望修改的驱动器或设备, 并在随后出现的快捷菜单中选择Change Drive Letter and Paths(修改驱动器盘符与路径)。
单击Change(修改), 点击Assign the following drive letter(分配以下驱动器盘符)并选择您希望分配的驱动器盘符, 之后单击OK(确定)。
这种方式将不允许您修改引导驱动器或系统驱动器盘符。此外, 许多基于MS-DOS和Windows的应用程序都会引用一个特定的驱动器盘符(例如环境变量)。如果您修改了相应的驱动器盘符, 那么, 这些程序将有可能无法正常工作。
修改盘符源代码
unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TMainfrm = class(TForm)
btn1: TButton;
lbledt1: TLabeledEdit; www.lexue88.com
lbledt2: TLabeledEdit;
mmo1: TMemo;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Mainfrm: TMainfrm;
_GetVolumeNameForVolumeMountPoint: function (lpszVolumeMountPoint: LPCSTR;
lpszVolumeName: LPSTR; cchBufferLength: DWORD): BOOL; stdcall;
_SetVolumeMountPoint: function (lpszVolumeMountPoint: LPCSTR;
lpszVolumeName: LPCSTR): BOOL; stdcall;
_DeleteVolumeMountPoint: function (lpszVolumeMountPoint: LPCSTR): BOOL; stdcall;
implementation
{$R *.dfm}
function GetVolumeNameForVolumeMountPoint(lpszVolumeMountPoint: LPCSTR;
lpszVolumeName: LPSTR; cchBufferLength: DWORD): BOOL;
var
Kernel32: THandle;
begin
if not Assigned(_GetVolumeNameForVolumeMountPoint) then
begin
Kernel32 := GetModuleHandle(PChar( ' kernel32.dll ' ));
if Kernel32 0 then @_GetVolumeNameForVolumeMountPoint :=
GetProcAddress(Kernel32, PChar( ' GetVolumeNameForVolumeMountPointA ' ));
end; www.lexue88.com
if Assigned(_GetVolumeNameForVolumeMountPoint) then
Result := _GetVolumeNameForVolumeMountPoint(lpszVolumeMountPoint, lpszVolumeName, cchBufferLength)
else
Result := False;
end;
function SetVolumeMountPoint(lpszVolumeMountPoint: LPCSTR; lpszVolumeName: LPCSTR): BOOL;
var
Kernel32: THandle;
begin
if not Assigned(_SetVolumeMountPoint) then
begin
Kernel32 := GetModuleHandle(PChar( ' kernel32.dll ' ));
if Kernel32 0 then
@_SetVolumeMountPoint := GetProcAddress(Kernel32, PChar( ' SetVolumeMountPointA ' ));
end;
_SetVolumeMountPoint(lpszVolumeMountPoint, lpszVolumeName);
{if Assigned(_SetVolumeMountPoint) then
Result := _SetVolumeMountPoint(lpszVolumeMountPoint, lpszVolumeName)
else
Result := False; }
end;
function DeleteVolumeMountPoint(lpszVolumeMountPoint: LPCSTR): BOOL;
var
Kernel32: THandle;
begin
if not Assigned(_DeleteVolumeMountPoint) then
begin
Kernel32 := GetModuleHandle(PChar( ' kernel32.dll ' ));
if Kernel32 0 then @_DeleteVolumeMountPoint := GetProcAddress(Kernel32, PChar( ' DeleteVolumeMountPointA ' ));
end;
if Assigned(_DeleteVolumeMountPoint) then
Result := _DeleteVolumeMountPoint(lpszVolumeMountPoint)
else
Result := False;
end;
procedure TMainfrm.btn1Click(Sender: TObject); www.lexue88.com
var
VolumeName: array [0..MAX_PATH] of Char;
begin
GetVolumeNameForVolumeMountPoint(PChar(lbledt1.Text), VolumeName, MAX_PATH);//获取制定分区的GUID
DeleteVolumeMountPoint(PChar(lbledt1.Text));//删除制定分区盘符
SetVolumeMountPoint(PChar(lbledt2.Text), VolumeName);//根据获取的GUID设置新的盘符
end;
相关阅读:
在移动硬盘或U盘里安装系统
SATA硬盘不能识别解决方法
硬盘NCQ功能是什么意思
右击硬盘分区第一项出现Auto的解决办法
如何分区让硬盘分区容量是整数
,如何修改硬盘盘符