c# 判断任务栏中是否已经打开文件夹?

我是在c#代理里面打开一个固定的文件夹目录,如果已经打开了,我就要前置窗口,希望大师能帮我解决,谢谢写错字了。代理=代码。... 我是在c#代理里面打开一个固定的文件夹目录,如果已经打开了,我就要前置窗口,希望大师能帮我解决,谢谢
写错字了。代理=代码。
展开
 我来答
阳光的雷咩咩
推荐于2016-03-28 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7826万
展开全部
    //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呢?
追答
看上面注释。
鬼剧
2019-02-15 · TA获得超过1017个赞
知道小有建树答主
回答量:197
采纳率:100%
帮助的人:36.5万
展开全部

网页链接 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);

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式