想用python做一个游戏脚本,但是游戏是一个独立窗口,每次窗口位置不同,坐标也不相同。
我会用pyautogui获取位置,但是没找到如何获取活动窗口。
用GPT作答:
要获取当前活动窗口的位置和坐标,你可以使用pygetwindow
库。该库可以帮助你获取窗口的信息,包括位置和大小。以下是一个示例代码来获取当前活动窗口的位置:
首先,你需要安装pygetwindow
库。使用以下命令可以安装它:
pip install pygetwindow
然后,你可以使用以下代码来获取当前活动窗口的位置:
import pygetwindow as gw
# 获取当前活动窗口
active_window = gw.getActiveWindow()
if active_window is not None:
# 获取窗口的位置和大小
x, y, width, height = active_window.left, active_window.top, active_window.width, active_window.height
print("窗口位置:", x, y)
print("窗口大小:", width, height)
这样,你就可以获取当前活动窗口的位置和坐标。然后,你可以使用pyautogui
库来执行你的游戏脚本,利用这些位置信息来进行操作。
用pygetwindow库的getActiveWindow()
import pygetwindow as gw
def get_active_window_position():
active_window = gw.getActiveWindow()
if active_window is not None:
return active_window.left, active_window.top
else:
return None
# 获取当前活动窗口的位置
window_position = get_active_window_position()
if window_position is not None:
print("当前活动窗口的位置:", window_position)
else:
print("没有找到活动窗口。")
因为我使用XPath无法点击到页面的播放按钮,所以使用pyautogui库进行对应位置的点击,我的屏幕尺寸为1920×1080,在不最大化Chrom浏览器的情况下,获取到播放按钮的坐标为(676, 860)
运行此程序,可以每秒输出鼠标对应的位置
gainPosition.py
import time
import pyautogui
try:
# 获取当前屏幕的尺寸
screenWidth, screenHeight = pyautogui.size()
# 打印当前屏幕的尺寸
print("Screen size: (%s %s)\n" % (screenWidth, screenHeight))
while True:
# 获取当前鼠标所停留位置的的坐标
x, y = pyautogui.position()
# 打印出当前鼠标所停留位置的的坐标
print("Position : (%s, %s)\n" % ( x, y))
# 每1s打印一次
time.sleep(1)
except KeyboardInterrupt:
print('end')
根据参考资料中的代码,可以使用pyautogui库来获取当前活动窗口的坐标。以下是具体的解决方案:
pip install pyautogui
```python import time import pyautogui
try: while True: # 获取当前鼠标所停留位置的坐标 x, y = pyautogui.position() # 打印出当前鼠标所停留位置的坐标 print("Position: (%s, %s)\n" % (x, y)) # 每1秒打印一次 time.sleep(1)
except KeyboardInterrupt: print('End') ```
这段代码会不断输出鼠标的坐标,可以通过移动鼠标来获取当前活动窗口的坐标。
打开命令行,进入Python脚本所在的目录,执行以下命令来运行脚本:
python script.py
当脚本运行时,通过移动鼠标,可以在命令行中实时获取当前活动窗口的坐标。
注意:在运行脚本之前,需要确保所需的游戏窗口已经打开。
通过以上步骤,就可以使用Python获取当前活动窗口的坐标了。
import win32gui
hwnd = win32gui.FindWindow(None, '窗口标题')
rect = win32gui.GetWindowRect(hwnd)
x = rect[0]
y = rect[1]
print("窗口左上角X坐标:", x)
print("窗口左上角Y坐标:", y)