使用具有相同类名的类获取窗口标题?

问题描述

答案:使用 Process.GetProcesses() 获取当前正在运行的进程;并希望您通过它们过滤所有进程,检查它们是否包含可能使用 if 语句和 Process.MainWindowTitle.Contains("something about media player") 链接到媒体播放器的任何内容

您好 Stack Overflow 用户

我目前在开发我的程序时遇到了问题。我正在尝试从 Clementine - A Media Player 获取当前窗口文本。我平时抓取窗口标题的方式是这样的:

IntPtr ClementineWindow = FindWindow("QWidget",null);
string CurrentSong = new string((char)0,100);
int WindowTitle = GetwindowText(ClementineWindow,CurrentSong,CurrentSong.Length);

但是在查看它之后,它要么返回一个数字 (0),要么什么都不返回。我注意到在 WinSpy++ 中,很多子窗口都使用相同的类名“QWidget”,如下图所示:

https://i.imgur.com/ss6qCi8.png

目前,我尝试使用句柄抓取窗口标题,但我认为我不太了解这一点。任何帮助将不胜感激。谢谢大家!

我还应该注意,我通常抓取窗口句柄的方式使用了来自 user32 DLL 的 FindWindow 和 GetwindowText 内容

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)