如何使用C#通过其进程ID获取EXE的标题栏文本

如何使用C#通过其进程ID获取EXE的标题栏文本

本文介绍了如何使用C#通过其进程ID获取EXE的标题栏文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用C#创建了一个进程并启动了该进程。



启动EXE时我将进程ID存储在一个变量中。



我必须使用其进程ID检索EXE的标题栏文本。



如何摆脱这个问题。

I have created a process using C# and started that Process.

While starting the EXE I have stored the Process Id in a variable.

I have to retrieve the Title Bar Text of the EXE using its Process Id.

How to get rid of this problem.

推荐答案

[DllImport("user32", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private extern static bool EnumThreadWindows(int threadId, EnumWindowsProc callback, IntPtr lParam);
[DllImport("user32", SetLastError = true, CharSet = CharSet.Auto)]
private extern static int GetWindowText(IntPtr hWnd, StringBuilder text, int maxCount);
private delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);


public IEnumerable<string> GetWindowText(Process p)
    {
    List<string> titles = new List<string>();
    foreach (ProcessThread t in p.Threads)
        {
        EnumThreadWindows(t.Id, (hWnd, lParam) =>
        {
            StringBuilder text = new StringBuilder(200);
            GetWindowText(hWnd, text, 200);
            titles.Add(text.ToString());
            return true;
        }, IntPtr.Zero);
        }
    return titles;
    }



这篇关于如何使用C#通过其进程ID获取EXE的标题栏文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-19 15:05