2010-02-13 870 views
2

我使用vmware workstation 6.5-7.0.1或vmware player 3.0.0登录到虚拟机。 我在虚拟机内工作。 然后我在虚拟机内按下一个键(例如Delete-Key,但它应该与每个键一起工作)。如何在vmware虚拟机中运行时获取键盘输入?

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

你可以想办法做到这一点吗?

在此先感谢!

+0

您想要识别在虚拟机之外运行C#应用程序的主机在虚拟机中所做的击键? – t0mm13b 2010-02-13 23:55:00

+0

@youllknow:请让我知道你是如何得到.. :) – t0mm13b 2010-02-14 00:42:12

+0

是的,这正是我想要做的!如果我找到(或多或少)解决方案,我会通知您。 – raisyn 2010-02-14 10:42:37

回答

1

我不是100%确定如果你真的可以挂钩虚拟机,除非有一个你可以下载截取它的SDK,记住VMWare正在模拟一个单独的机器,但是一个合乎逻辑的机器......下载可从VMWare获得。我只能猜测(我使用Virtualbox自己),一个虚拟机(VMWare/VirtualBox)抓住键盘钩子的控制,我想,主机系统不会看到它们......但它会是有趣的尝试出来...我已经提供了链接到CodeProject键盘钩子...

在易用性方面找到一个适合您的方法,并尝试在键盘上挂钩,运行VMWare,使您的C#应用​​程序运行并查看它是否在虚拟机中提取任何密钥...我会很有兴趣知道...

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

希望这有助于 最好的问候, 汤姆。

+0

在我问这个问题之前,我已经找到了你提供的3个链接。所以我现在要通过“EasyHook”。其他3人希望为我的具体情况工作。感谢您的帮助!!! – raisyn 2010-02-14 10:44:25

+0

EasyHook对我来说不是很有用。通过检查capslock,numlock或scolllock的状态是否发生了变化,我找到了一个“解决方案”......这是我发现的唯一一个可以运行虚拟机的东西。即使DirectX DirectInput也不起作用(很奇怪)。 – raisyn 2010-02-14 20:53:08

+0

@你知道:DirectX是更多的图形和游戏,我很惊讶,你只能获得盖帽/数字/滚动锁的LED和没有别的......我猜,因为VMWare有焦点和活动窗口,VMWare的键盘钩优先,当VMWare窗口不活动/没有聚焦,你不能获得键盘数据......这是我的猜测......你试过把键盘挂在PRIOR上运行VMWare吗? – t0mm13b 2010-02-14 21:20:11