如何从c#获取进程窗口类名?

Jax*_*Jax 3 c# process

如何获取某个进程的窗口类名?我想在c#中实现这一点.

我在c#中尝试了进程类,但我只能得到进程的窗口名称.

谢谢

Rot*_*tem 6

我假设你的意思是你想得到一个进程主窗口的类名.

要做到这一点,你需要使用到获取句柄到主窗口MainWindowHandle你的Process对象,然后使用下面的互操作方法来获取类的名字:

[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);
Run Code Online (Sandbox Code Playgroud)

有关该函数的详细信息,请参阅pinvoke.net以获取示例代码和MSDN.

  • MainWindowHandle不保证是应用程序的"主窗口".它通常只是该线程/消息泵创建的第一个,如果这是一个启动屏幕将无法帮助您.更可靠的方法,特别是因为你使用WinAPI无论如何都是调用FindWindow,将它传递给你正在寻找的主窗口的名称. (3认同)