透明表单上的MouseClick事件,不会中断后台应用程序上的事件[关闭]

问题描述 投票:-1回答:1

我需要检查用户在使用计算机时何时何地使用鼠标。为此,我创建了始终保持前景的透明表单。问题是,它没有像我预期的那样表现。

出于某种原因,当我选择表格的backgroundColortransparencyKeyRed时,我可以阅读MouseEvents但我无法对留在后台的应用程序做任何事情。我可以通过Form看到它是透明的,但我不能在留在它后面的应用程序上使用鼠标进行任何操作。

另一方面,当我将backgroundColortransparencyKey设置为Control(系统颜色)时,我可以在其他应用程序上运行,但MouseEvents不起作用。

有没有简单的方法我可以使用鼠标事件,并能够同时使用其他Windows应用程序?

c# winforms
1个回答
2
投票

如果您需要在系统级别控制鼠标或键盘活动,则只有一种方法,但并不简单:使用挂钩。请参阅SetWindowsHookEx以供参考。

SetWindowsHookEx是一个Windows API,可拦截所有键盘和/或鼠标活动,并允许您的应用程序检索信息。

Herehere (version 1)有几个例子。

© www.soinside.com 2019 - 2024. All rights reserved.