我有一个例程,它获取所有打开的窗口(进程),然后使用 user32 中的 GetClassName 方法搜索它的类名。但是,例如当 Teamviewer 在所有应用程序的类名上时,获取 teamviewer 类名。
示例:记事本打开并且 TeamViewer 在类名:'TeamViewer_TitleBarButtonClass' 记事本打开并且 TeamViewer 关闭类名:'Notepad'
我查看了这是怎么来的,发现 Teamviewer 在一些应用程序窗口之上放置了一个控件。
那么我怎样才能找到应用程序的真实类名而不是从 Teamviewer 中呢?
Process[] processes = Process.GetProcesses();
StringBuilder className = new StringBuilder(100);
For (int i = 0; i < processes.Length; i++)
{
if (processes[i].MainWindowHandle != IntPtr.Zero)
{
list.Add(processes[i]);
GetClassName(processes[i].MainWindowHandle, className, className.Capacity);
}
}