如何使用Windows Shell API和C#更改映射驱动器的友好名称?我的实际问题是我正在处理没有UNC路径的断开连接的网络驱动器,因此重命名它的唯一方法是从资源管理器中进行,但是我想以编程方式进行.解决方法:我遇到了类似...

如何使用Windows Shell API和C#更改映射驱动器的友好名称?我的实际问题是我正在处理没有UNC路径的断开连接的网络驱动器,因此重命名它的唯一方法是从资源管理器中进行,但是我想以编程方式进行.
解决方法:
我遇到了类似的问题,并使用以下代码解决了该问题:
Shell32.Shell shell = new Shell32.Shell();
((Shell32.Folder2)shell.NameSpace("X:")).Self.Name = "Friendly Label";
参考COM-> Microsoft Shell控件和自动化.
基本上,这是我使用的旧VBS代码的C#表示形式
Set oShell = CreateObject("Shell.Application")
oShell.NameSpace("X:").Self.Name = "Friendly Label"
但是区别在于,由于某种原因,NameSpace的C#实现返回folder object,而所有VB实现似乎都返回folder2 object.只有folder2具有’Self’属性,因此需要进行额外的强制转换.
另外,正如其中一条评论中所指出的那样,这仅在STA公寓内有效,因此Main()方法必须使用[STAThread]装饰.
我希望回答这样的老问题不是坏习惯,但是我很沮丧,没有在任何地方找到解决方案.
织梦狗教程
本文标题为:c#-使用Shell API重命名映射的驱动器


基础教程推荐
猜你喜欢
- C#实现BBcode转为Markdown的方法 2022-12-09
- ASP.NET Core 进程内(InProcess)托管 2023-09-26
- C#单线程和多线程的端口扫描器应用比较详解 2023-06-27
- c# – 运行SQL的AJAX请求后不需要的页面刷新 2023-11-11
- C#实现多文件压缩与解压功能 2023-07-04
- c# 进程之间的线程同步 2023-03-14
- C#开发Winform实现窗体间相互传值 2023-05-25
- C#实现学生档案查询 2023-05-15
- C#多线程异步执行和跨线程访问控件Helper 2023-06-04
- C# 枚举类型的声明和使用 2023-04-21