【发布时间】:2014-01-04 22:00:58
【问题描述】:
练习是从资源管理器上下文菜单启动一个 C# 程序,程序应该知道上下文菜单打开时文件夹的路径。
我做了什么:将我的程序添加到资源管理器上下文菜单并添加以下代码:
SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindows();
string filename;
ArrayList windows = new ArrayList();
foreach (SHDocVw.InternetExplorer ie in shellWindows)
{
filename = Path.GetFileNameWithoutExtension(ie.FullName).ToLower();
if (filename.Equals("explorer"))
{
Console.WriteLine("Hard Drive: {0}", ie.LocationURL);
windows.Add(ie);
Shell shell = new Shell32.Shell();
foreach (SHDocVw.InternetExplorerMedium sw in shell.Windows())
{
Console.WriteLine(sw.LocationURL);
}
}
}
基本上这确实有效,但仅适用于在资源管理器的左侧树视图中选择的文件夹。下一个问题是当我使用带有路径“C:\C#”的 sw.LocationURL 时,结果是“file:///C:/C%23”。
有没有更简单的方法来获取我在其上打开 C# 上下文菜单的文件夹属性(路径、名称)?
【问题讨论】:
标签: c# contextmenu explorer