`

修改网络映射磁盘的方法

 
阅读更多

      相信很多人都一直希望能够修改网络映射磁盘的Lable,但伤心的是使用SetVolumValue不可用,其仅适用于本地磁盘的Label修改。

 

      修改网络磁盘的方法可以采用注册表的形式,这里该方法就不拿来说明,网上很容易找到的。

 

      这里提供一种采用COM 的API方式来修改:

     

void RenameDrive(BSTR strNewName, BSTR strDriveLetter)
{
   IShellDispatch* pShellDispatch = NULL;

   if ( SUCCEEDED( CoInitialize(NULL) ) )
   {
	   // 如果成功初始化COM库,则继续初始化并运行应用程序...
	   // 对于Win32应用程序, CoInitialize函数的pvReserved参数,必须为NULL. 此参数不能被用于32位COM,      
	   // CoInitialize将会返回E_INVALIDARG,如果传递一个非NULL参数.
   }
   else
   {
	   // 如果初始化COM库失败,则退出.
   }

   HRESULT hr = CoCreateInstance(CLSID_Shell,
                                 NULL,
                                 CLSCTX_INPROC_SERVER,
                                 IID_IShellDispatch,
                                 (void**)&pShellDispatch);
   if (SUCCEEDED(hr) && pShellDispatch)
   {
      Folder* pFolder = NULL;
      VARIANT vt = {};
      VariantInit(&vt);
      vt.vt = VT_BSTR;
      vt.bstrVal = strDriveLetter;
      hr = pShellDispatch->NameSpace(vt, &pFolder);
      VariantClear(&vt);
      if (SUCCEEDED(hr) && pFolder)
      {
         Folder2* pFolder2 = NULL;
         hr = pFolder->QueryInterface(IID_Folder2, (void**)&pFolder2);
         if (SUCCEEDED(hr) && pFolder2)
         {
            FolderItem* pFolderItem = NULL;
            hr = pFolder2->get_Self(&pFolderItem);
            if (SUCCEEDED(hr) && pFolderItem)
            {
               pFolderItem->put_Name(strNewName);
               pFolderItem->Release();
            }
            pFolder2->Release();
         }

         pFolder->Release();
      }

      pShellDispatch->Release();

	  CoUninitialize();
   }
}

 

    测试代码:

   

int _tmain(int argc, _TCHAR* argv[])
{
	BSTR bstrLabel = ::SysAllocString( L"TestLabel" );

	if (bstrLabel == NULL)

		return E_OUTOFMEMORY;

	BSTR bstrLetter = ::SysAllocString( L"Z:" );

	if (bstrLetter == NULL)

		return E_OUTOFMEMORY;

	RenameDrive(bstrLabel, bstrLetter);

	::SysFreeString( bstrLabel );
	::SysFreeString( bstrLetter );
	return 0;
}

    

   OK

   转载请注明出处:

   http://yiranwuqing.iteye.com/blog/1825349

0
0
分享到:
评论

相关推荐

    磁盘映射网络技术

    磁盘映射网络技术是一种计算机网络技术,它允许用户通过网络访问远程计算机的磁盘驱动器,仿佛这些磁盘是本地计算机的一部分。这种技术在分布式系统、远程协作、数据备份和资源共享等方面具有广泛的应用。在远程通这...

    登录Windows自动映射磁盘

    标题“登录Windows自动映射磁盘”涉及到的是在Windows操作系统中如何设置用户登录时自动挂载网络磁盘驱动器的功能。这一技术对于那些需要频繁访问远程文件服务器的用户或者需要在多台计算机间同步工作环境的用户非常...

    windows10 磁盘映射脚本

    - 使用脚本映射磁盘时,必须确保用户具有足够的权限访问网络共享,并且在执行脚本前,应验证脚本的来源,防止潜在的安全风险。 5. **注意事项** - 在运行外来脚本前,务必检查其内容,避免执行恶意代码。 - 如果...

    自动映射磁盘文件,根据需要修改路径

    标题中的“自动映射磁盘文件,根据需要修改路径”是指在Windows操作系统中,通过脚本或批处理文件(BAT文件)实现磁盘驱动器的映射,以便将一个特定的文件夹路径映射为一个虚拟的驱动器字母,使得用户可以更方便地...

    如何将网盘映射为本地磁盘.pdf

    在开始映射网盘之前,需要在网盘设置中启用网络磁盘映射功能。具体步骤如下: 1. 登录网盘账户,进入设置页面。 2. 点击“个人帐号” ➡️ “访问控制” ➡️ 选择“启用网络磁盘映射”。 3. 输入访问密码,点击...

    VB网络映射实例

    在网络映射中,本地计算机通过创建网络驱动器符号链接到远程服务器的共享文件夹,这样用户就可以像访问本地磁盘一样访问远程资源。在VB中,我们可以利用Windows API函数(如`WNetAddConnection2`)来实现这个功能。...

    windowserver2019组策略创建磁盘映射.docx

    通过Windows Server 2019中的组策略对象创建磁盘映射是一种高效且便捷的方法,尤其适用于大规模的企业环境。这种方式不仅减少了手动配置的工作量,还能确保所有受管设备上的一致性和准确性。对于那些需要频繁更改或...

    清除映射网络驱器记录

    为了方便访问这些资源,用户通常会选择“映射网络驱动器”的方式来创建一个虚拟的磁盘驱动器,从而能够像访问本地文件一样轻松访问网络上的文件夹。不过,在映射网络驱动器后,系统往往会自动保存这些记录,导致下一...

    易语言映射共享

    易语言映射共享源码,映射共享,网络_映射网络驱动器,网络_取消网络驱动器映射,网络_修改网络驱动器卷标,WNetCancelConnection2,WNetAddConnection2

    共享文件夹映射成盘符工具

    而“映射”则是指将这个共享的磁盘位置映射到本地计算机的一个驱动器字母,比如C、D、E等,这样用户就可以像操作本地硬盘一样来操作远程的共享文件夹,无需记住复杂的网络路径。 映射网络驱动器的步骤通常包括以下...

    网络磁盘管理

    【网络磁盘管理】是一种基于Web的文件存储和管理解决方案,它允许用户通过网络来访问、上传、下载、创建、删除以及修改文件和文件夹。在这个系统中,SSH(Secure Shell)提供了安全的远程访问,而EXTJS则是一个用于...

    网盘映射为磁盘工具 raidrive-2020.6.80

    1. **实时同步**:RAIDRIVE支持文件的实时同步,这意味着一旦你在网盘上进行修改,这些更改会立即反映到映射的本地磁盘上,反之亦然,确保了数据的即时性。 2. **高速访问**:通过将网盘映射为本地磁盘,RAIDRIVE...

    vmware 虚拟磁盘文件格式

    无论你是调整虚拟机的RAM大小,还是更改网络接口卡信息,所有这些更改都将被记录在.vmx文件中。该文件采用文本格式,易于阅读和编辑,尽管直接编辑.vmx文件并不推荐,除非你对虚拟机配置有深入了解。直接编辑.vmx...

    C#实现磁盘共享

    以上就是关于"C#实现磁盘共享"的关键知识点,通过这些技术和方法,开发者可以在C#程序中创建、管理和控制网络共享的磁盘资源。当然,实际操作中还需要考虑更多细节,如多线程同步、性能优化以及用户界面设计等。

    大文件读写内存映射.rar

    Qt是一个跨平台的C++库,提供了丰富的功能,包括图形用户界面、网络编程、数据库访问等,同时也支持内存映射技术。 内存映射允许将大文件的部分或全部内容映射到进程的虚拟地址空间,这样应用程序可以直接通过指针...

    远程键盘映射工具Java

    【标题】"远程键盘映射工具Java"是一个基于Java编程语言开发的网络应用程序,它的主要功能是实现远程键盘映射。这项技术对于那些需要在不同设备间进行同步操作的用户,尤其是在线游戏爱好者,有着极大的实用价值。...

    在Windows与Linux下Samba共享文件夹以及映射的详细使用说明

    在Windows与Linux下Samba共享文件夹以及映射的详细使用说明是指在Windows和Linux操作系统中如何使用Samba来共享文件夹和映射网络资源的详细使用说明。Samba是一个自由开源的软件,能够让Windows和Linux操作系统之间...

    3.19文件共享和分配磁盘实验报告.docx

    实验报告“3.19文件共享和分配磁盘实验报告.docx”主要涵盖了Windows Server 2008的用户管理和文件共享,以及Windows 10系统中如何将局域网内的共享文件夹映射为网络驱动器。以下是该实验涉及的具体知识点: 1. **...

    磁盘柜配置方法

    【磁盘柜配置方法】与【storage management utility(MSA2324FC)】相关的知识点涉及到了存储设备的管理、RAID配置、虚拟磁盘创建、卷建立、LUN映射以及网络连接等多个方面。以下是对这些内容的详细解释: 1. **...

    将CentOS服务器的目录映射为Windows磁盘驱动器的方法.docx

    将 CentOS 服务器的目录映射为 Windows 磁盘驱动器是通过 Samba 服务实现的,Samba 是一个开源软件,它使得 Linux 和 Unix 系统能够与使用 SMB/CIFS 协议(Server Message Block/Common Internet File System)的 ...

Global site tag (gtag.js) - Google Analytics