【发布时间】:2023-01-22 06:38:09
【问题描述】:
我的应用程序使用一段方便的代码来获取文件资源管理器中当前活动实例的路径。由于资源管理器有标签,代码不能正常工作。它总是给我第一个选项卡的路径。但我想获取所选选项卡的路径。
如何获取活动资源管理器实例中活动选项卡的路径?
[DllImport("user32.dll")]
static extern int GetForegroundWindow();
dynamic o = Activator.CreateInstance(Type.GetTypeFromProgID("Shell.Application"));
string path = null;
try
{
var ws = o.Windows();
for (int i = 0; i < ws.Count; i++)
{
SHDocVw.InternetExplorer ie = ws.Item(i);
if(ie.HWND == GetForegroundWindow())
{
if (ie == null) continue;
var path = Path.GetFileName((string)ie.FullName);
if (path.ToLower() == "explorer.exe")
{
path = ie.LocationURL.Replace("file:///", "");
Debug.WriteLine("PATH: " + path);
}
break;
}
}
}
finally
{
Marshal.FinalReleaseComObject(o);
}
由于选项卡是非常新的,这可能还没有实现吗?
【问题讨论】: