本文介绍了如何使用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的标题栏文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!