C# 取外部程式标题获得进程名

外部程式就是指第三方的程式,比如QQ或正在使用别人开发的程式,取得它的进程名,然後获取它的路径.其实我也搞定了,但没有你的方法好,附上代码,可能会帮助到和我一样困惑过的人... 外部程式就是指第三方的程式,比如QQ或正在使用别人开发的程式,取得它的进程名,然後获取它的路径.
其实我也搞定了,但没有你的方法好,附上代码,可能会帮助到和我一样困惑过的人
public MODULEENTRY32 通过程式标题取得路径(string Title)
{
MODULEENTRY32 ME32 = new MODULEENTRY32();
int hWnd = FindWindow(null, Title);
int Pid = 0;
GetWindowThreadProcessId(hWnd, ref Pid);
int hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPmodule, Pid);
ME32.dwSize = Marshal.SizeOf(ME32);
bool isok = Module32First(hSnapShot, ref ME32);

return ME32;
}
展开
 我来答
广州方讯科技
2014-11-27 · TA获得超过346个赞
知道小有建树答主
回答量:316
采纳率:100%
帮助的人:223万
展开全部

这个其实很简单,直接上代码。

using System;
using System.Diagnostics;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Process[] ps = Process.GetProcessesByName("QQ");
            if (ps.Length > 0)
            {
                Process p = ps[0];
                Console.Write(p.MainModule.FileName);
                Console.ReadKey();
            }

        }
    }
}

追问
我只知道第三方程式的标题,并不知道它的进程名怎么处理!
追答

知道标题也是可以,不过这需要调用win32api,以“计算器”为例,代码如下。

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;

namespace ConsoleApplication1
{
    class Program
    {
        [DllImport("User32.dll", EntryPoint = "FindWindow")]
        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

        [DllImport("user32", EntryPoint = "GetWindowThreadProcessId")]
        public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int pid);
  
        static void Main(string[] args)
        {
            IntPtr hwnd = FindWindow(null, "计算器");
            int pid;
            GetWindowThreadProcessId(hwnd, out pid);
            var p = Process.GetProcessById(pid);
            if (p != null)
            {
                Console.Write(p.MainModule.FileName);
                Console.ReadKey();
            }
        }
    }
}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式