c# 判断任务栏中是否已经打开文件夹?
我是在c#代理里面打开一个固定的文件夹目录,如果已经打开了,我就要前置窗口,希望大师能帮我解决,谢谢写错字了。代理=代码。...
我是在c#代理里面打开一个固定的文件夹目录,如果已经打开了,我就要前置窗口,希望大师能帮我解决,谢谢
写错字了。代理=代码。 展开
写错字了。代理=代码。 展开
展开全部
//using System.Diagnostics;
//using System.Runtime.InteropServices;
//using SHDocVw;
class Program
{
//1. 引用c:\windows\system32\shdocvw.dll
//2. 声明SetForegroundWindow
[DllImport("user32.dll")]
static extern bool SetForegroundWindow(IntPtr hWnd);
static void Main(string[] args)
{
ShellWindows wins = new ShellWindows();
string folder = @"D:\test";
bool found = false;
foreach (InternetExplorer w in wins)
if (w.LocationURL.Contains(
folder.Replace('\\', '/')))
{
SetForegroundWindow((IntPtr)w.HWND);
found = true;
break;
}
if (!found)
Process.Start("explorer", folder);
Console.ReadLine();
}
}
更多追问追答
追问
ShellWindows 这个需要依赖哪个dll呢?
追答
看上面注释。
展开全部
网页链接 net3.5下使用,要使用win32api来达到目的
/// <summary>
/// 置前窗口
/// </summary>
/// <param name="hwnd"></param>
/// <returns></returns>
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern bool SetForegroundWindow(IntPtr hwnd);
Win32api.SetForegroundWindow(item.HWND);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询