Python后台点击无效

我自己做了个小脚本。想点击vnc远控界面进行操作。pyautogui前台点击都没问题。但是用win32api 后台后台就无法点击。有没有什么好的办法。

【以下回答由 GPT 生成】

我可以提供一种解决方案,即使用PyAutoGUI和win32gui库来实现后台操作时的VNC远程控制界面点击功能。以下是具体的步骤:

  1. 首先确保你已经安装了PyAutoGUI和win32gui库。如果没有安装,可以通过以下命令在命令行中进行安装:
pip install pyautogui
pip install pywin32
  1. 导入所需的库:
import pyautogui
import win32gui
import win32api
import win32con
  1. 获取VNC远程控制界面的窗口句柄:
vnc_window_title = "VNC Remote Control"
hwnd = win32gui.FindWindow(None, vnc_window_title)
  1. 定义一个函数来点击指定位置:
def click_position(x, y):
    win32api.SetCursorPos((x, y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
  1. 通过获取窗口的左上角坐标和宽高来计算要点击的位置:
win_rect = win32gui.GetWindowRect(hwnd)
left = win_rect[0]
top = win_rect[1]
width = win_rect[2] - left
height = win_rect[3] - top

# 计算屏幕上的绝对坐标
x = left + int(width/2)
y = top + int(height/2)
  1. 调用函数来进行点击操作:
click_position(x, y)

请注意,这种方法仅在VNC远程控制界面被添加到目标主机的桌面时有效。在使用之前,请确保你的VNC远程控制界面已经连接且在前台可见。

希望这个解决方案能够帮助到你,如果还有其他问题,请随时提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^