要获取窗口的名字,你可以使用不同的方法,具体取决于你的需求和使用的编程语言。以下是一些常见的方法:
使用API函数
GetActiveWindow和 GetWindowText:
获取活动窗口的句柄,然后使用 `GetWindowText` 函数获取窗口名称。
```csharp
using System.Runtime.InteropServices;
[DllImport("User32.dll")]
private extern static int GetActiveWindow();
[DllImport("User32.dll")]
private extern static int GetWindowText(int hWnd, StringBuilder title, int maxBufSize);
// 获取活动窗口名称
int activeWindowHandle = GetActiveWindow();
StringBuilder activeWindowName = new StringBuilder(256);
GetWindowText(activeWindowHandle, activeWindowName, activeWindowName.Capacity);
string activeWindowNameStr = activeWindowName.ToString();
```
FindWindow:
通过窗口类名或窗口标题获取窗口句柄,然后使用 `GetWindowText` 函数获取窗口名称。
```csharp
[DllImport("user32.dll")]
private extern static long FindWindow(string lpClassName, string lpWindowName);
// 获取窗口名称
long windowHandle = FindWindow("类名", "窗口标题");
StringBuilder windowName = new StringBuilder(256);
GetWindowText(windowHandle, windowName, windowName.Capacity);
string windowNameStr = windowName.ToString();
```
使用第三方库
pygetwindow(适用于Python):
安装 `pygetwindow` 模块,然后使用 `getAllTitles` 函数获取所有打开的窗口名称。
```python
import pygetwindow as gw
获取所有打开的窗口名称
windows = gw.getAllTitles()
for window in windows:
print(window)
```
使用X11库(适用于Linux)
Xlib:
使用 `XTextProperty` 和 `XGetWindowProperty` 函数获取窗口名称。
```python
from Xlib import X, display
dpy = display.Display()
root = dpy.screen().root
window_id = root.get_full_property(X.WM_NAME, X.XAtom.STRING).value
window = dpy.create_resource_object(X.Window, window_id)
window_name = window.get_name()
```
根据你的具体需求和使用的编程语言,选择合适的方法来获取窗口名称。如果你需要在Windows平台上使用C,建议使用 `System.Runtime.InteropServices` 命名空间中的API函数。如果你使用的是Python,可以考虑使用 `pygetwindow` 模块。对于Linux系统,可以使用Xlib库来获取窗口名称。