【问题标题】:How to get keyboard input while running in vmware virtual machine?在 vmware 虚拟机中运行时如何获取键盘输入?
【发布时间】:2010-02-13 22:57:54
【问题描述】:

我使用 vmware 工作站 6.5-7.0.1 或 vmware player 3.0.0 登录到虚拟机。 我在虚拟机内部工作。 然后我在虚拟机中按下一个键(例如 Delete-Key,但它应该适用于每个键)。

我想识别在虚拟机外部运行的 C# 应用程序中的“按键事件”。

你能想出什么办法吗?

【问题讨论】:

  • 您想从运行 C# 应用程序的主机(在虚拟机之外)识别虚拟机中的击键吗?
  • @youllknow:请让我知道你的进展如何...... :)
  • 是的,这正是我想做的!如果我找到(或多或少)解决方案,我会通知您。

标签: c# .net vmware keyboard-events keyboard-hook


【解决方案1】:

我不能 100% 确定您是否真的可以连接到 VM,除非有可以下载的 SDK 来拦截它,记住 VMWare 正在模拟一台单独的机器,但是一个合乎逻辑的机器好吧......下载可用来自VMWare

我只能猜测(我自己使用 Virtualbox),虚拟机(VMWare/VirtualBox)控制了我想象的键盘钩子,主机系统不会看到它们......但这会很有趣尝试一下...我提供了 CodeProject 的链接以获取键盘挂钩...

找到一个在易用性方面适合您的,然后尝试挂接键盘,运行 VMWare,运行您的 C# 应用程序,看看它是否在虚拟机中拾取任何键...我很想知道...

哦,是的,我为好问题 +1,欢迎来到 SO! :)

希望这会有所帮助, 最好的祝福, 汤姆。

【讨论】:

  • 在我在这里问这个问题之前,我已经找到了你提供的 3 个链接。所以我现在要讨论“EasyHook”。其他 3 个想为我的具体情况工作。感谢您的帮助!!!
  • EasyHook 对我来说不是很有用。通过检查 capslock、numlock 或 scolllock 的状态是否已更改,我找到了一个“解决方案”……我发现这是唯一适用于虚拟机的方法。甚至 DirectX DirectInput 也不起作用(很奇怪)。
  • @Youllknow:DirectX 更适用于图形和游戏,我很惊讶您只能获得用于 caps/num/scroll 锁定的 LED,而没有其他...我猜,因为 VMWare 有焦点和活动窗口,VMWare 的键盘钩子优先,当 VMWare 窗口不活动/未聚焦时,您无法获取键盘数据...这是我的猜测...您是否尝试在运行 VMWare 之前挂钩键盘?
  • 是的,我试过了。我想我可能会使用 DirectInput,因为它可能更面向硬件。
猜你喜欢
  • 2013-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-09
  • 1970-01-01
  • 1970-01-01
  • 2018-10-27
相关资源
最近更新 更多