if win32gui.IsWindowVisible(hwnd) and "GPU-Z" in win32gui.GetWindowText(hwnd): win32gui.MoveWindow(hwnd, 0, 0, 800, 600, True)中要寻找含有GPU-Z字符的窗口要怎么修改代码
时间: 2024-04-13 18:30:40 浏览: 15
要修改代码以寻找窗口标题中包含"GPU-Z"字符的窗口,你可以使用`win32gui.GetWindowText()`函数获取窗口标题,并使用`in`关键字检查字符串是否包含"GPU-Z"。以下是修改后的代码示例:
```python
def find_gpu_z(hwnd, lParam):
window_title = win32gui.GetWindowText(hwnd)
if win32gui.IsWindowVisible(hwnd) and "GPU-Z" in window_title:
win32gui.MoveWindow(hwnd, 0, 0, 800, 600, True)
```
在回调函数中,我们首先使用`GetWindowText()`函数获取窗口标题,并将其保存在变量`window_title`中。然后,我们使用`in`关键字检查字符串`window_title`是否包含"GPU-Z"。如果窗口可见且标题中包含"GPU-Z",我们使用`MoveWindow()`函数将窗口移动到指定位置(这里是坐标`(0, 0)`),并调整窗口大小为`(800, 600)`。
请注意,修改后的代码仅会对标题中包含"GPU-Z"字符的窗口进行操作。如果窗口标题不正确或应用程序未打开,代码可能无法正常工作。
相关问题
win32gui win32con 将GPU-Z窗口移动到桌面右上角
要使用`win32gui`和`win32con`将GPU-Z窗口移动到桌面右上角,可以按照以下步骤进行操作:
首先,确保你已经安装了`pywin32`库。如果没有安装,可以使用以下命令进行安装:
```
pip install pywin32
```
接下来,导入所需的库:
```python
import win32gui
import win32con
```
然后,定义一个回调函数来找到GPU-Z窗口:
```python
def find_gpu_z(hwnd, lParam):
if win32gui.IsWindowVisible(hwnd) and "GPU-Z" in win32gui.GetWindowText(hwnd):
win32gui.MoveWindow(hwnd, 0, 0, 800, 600, True)
```
在回调函数中,我们使用`IsWindowVisible()`函数检查窗口是否可见,并使用`GetWindowText()`函数获取窗口标题。如果窗口可见且标题包含"GPU-Z",我们使用`MoveWindow()`函数将窗口移动到指定位置(这里是桌面的右上角),可以根据需要调整窗口的大小。
最后,我们使用`EnumWindows()`函数遍历所有窗口,并调用回调函数来找到GPU-Z窗口并移动它:
```python
win32gui.EnumWindows(find_gpu_z, None)
```
这样,GPU-Z窗口就会被移动到桌面右上角了。请注意,这个方法假设你已经打开了GPU-Z应用程序,并且窗口的标题确实包含"GPU-Z"。如果窗口标题不正确或应用程序未打开,代码可能无法正常工作。
win32gui.EnumWindows(enumHandler, titles) 写入类 中无法调用
如果你想在类中调用win32gui.EnumWindows()函数,可以在类中定义一个方法,例如:
```python
import win32gui
class MyClass:
def __init__(self):
self.titles = [] # 用于存储窗口句柄的列表
def enum_handler(self, hwnd, _):
if win32gui.IsWindowVisible(hwnd):
if '【魔域】' in win32gui.GetWindowText(hwnd):
self.titles.append(hwnd)
def find_game_window(self):
win32gui.EnumWindows(self.enum_handler, None)
return self.titles
```
在这个例子中,我们定义了一个名为`MyClass`的类,其中包含一个`enum_handler()`方法和一个`find_game_window()`方法。在`__init__()`方法中,我们初始化了一个列表`tiles`,用于存储窗口句柄。
`enum_handler()`方法与你提供的代码片段是一样的,用于枚举当前打开的窗口,并将其中标题中包含"【魔域】"的窗口句柄添加到`tiles`列表中。
`find_game_window()`方法调用了`EnumWindows()`函数,并将`self.enum_handler`作为回调函数传递给它。由于`EnumWindows()`函数需要两个参数,我们将第二个参数设为`None`,表示在`enum_handler()`函数中我们不需要使用第二个参数。
最后,`find_game_window()`方法返回`tiles`列表,其中包含所有符合条件的窗口句柄。你可以实例化`MyClass`类并调用`find_game_window()`方法来获取窗口句柄列表。