【问题标题】:Moving Mouse in Python on VM在 VM 上使用 Python 移动鼠标
【发布时间】:2015-12-30 02:27:03
【问题描述】:

我正在尝试使用这个简单的代码来移动鼠标。

import win32api, win32con
def click(x,y):
    win32api.SetCursorPos((x,y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)
click(10,10)

我的机器正在运行 MacOS,我在装有 windows 7 的计算机上运行虚拟机。当我在虚拟机上运行此代码时,它不会移动实际的鼠标,而是使用“幽灵鼠标”来制作点击。当我尝试使用此代码在 Windows 桌面计算机上移动鼠标时,您可以看到光标在移动(与我的 VM 不同)。

有什么想法可以通过python让实际的鼠标光标在我的虚拟机上移动吗?

谢谢!

【问题讨论】:

  • 为什么虚拟机能够覆盖主机的鼠标位置?
  • 因为这是编程,我想要它。有可能是不可能的。

标签: python


【解决方案1】:

据我所知,我真的不相信这是可能的。就所有 VM 所知,主机甚至都不存在(大部分情况下)。虚拟机做的一件主要事情是从主机沙箱客户端。 (见security.SE)。

另一件事是,这将是一个巨大的安全问题。如果我可以从 VM 访问您的机器,那么我表面上可以点击并安装恶意软件。

现在来看看:你可能可以。

VMS 可以通过网络与它们的主机通信,因此如果您有一个服务器在主机上监听通信,并且主机在读取通信后移动光标,那么可以。请注意,此方法需要显式设置主机以侦听客户端。我所知道的任何方法都不允许虚拟机在没有主机“监听”的情况下直接与主机交互。

【讨论】:

  • 谢谢!这似乎是正确的反应。这很奇怪,因为我试图点击的程序似乎没有响应点击,除非实际的主机鼠标被移动。 Python 可以在我的 vm 中将“幽灵鼠标”移动到按钮上,我看到主机鼠标(它没有移动,但它的光标变为按钮按下,食指)。但是,当 Python 单击时,什么也没有发生。我假设我试图点击的程序有一些安全检查,实际的主机鼠标在它点击的按钮的范围内(可能是为了防止恶意软件)
猜你喜欢
  • 2012-11-14
  • 2016-12-24
  • 1970-01-01
  • 2018-12-22
  • 2018-11-03
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多