如何在基于表单的应用程序vb6中注册唤醒/睡眠事件

如何在基于表单的应用程序vb6中注册唤醒/睡眠事件,vb6,Vb6,我正在处理一个遗留代码vb6-一个基于表单的应用程序,它有虚拟键盘,但在唤醒或再次登录后会失去焦点。该应用程序通常在windows tablet上运行,因此我需要将其焦点重置为必须在其中的字段。 我找不到任何可以做到这一点的活动 我发现了一个vb.net事件,但无法在vb6上使用它 Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) 还尝试了事件处理程序,但没有奏效 为此,我需要找到一些可以在睡后或醒

我正在处理一个遗留代码vb6-一个基于表单的应用程序,它有虚拟键盘,但在唤醒或再次登录后会失去焦点。该应用程序通常在windows tablet上运行,因此我需要将其焦点重置为必须在其中的字段。 我找不到任何可以做到这一点的活动

我发现了一个vb.net事件,但无法在vb6上使用它

Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
还尝试了事件处理程序,但没有奏效


为此,我需要找到一些可以在睡后或醒来后处理的事件。有什么想法吗?

子类化WndProc是的,即使您的示例来自.Net,但在.Net中,使用正确的API调用和正确的消息签名也可以做到这一点。问题是您必须为afterSleep和onWakeup找到正确的消息,并在子类WndProc中适当地处理这些消息。这是经典VB中子分类的一个很好的介绍。在VB中有什么方法可以做到这一点吗?是的,您可以在VB中做到这一点,只需更改添加eventhandler的行以使用该方法,显然开关需要更改为Select。我不能肯定这是您需要的,但您可能希望研究CBT挂钩。请特别注意HCBT_激活参数。这里有一个指向SetWindowsHookEx函数的链接,它应该给你足够的时间继续下去。基本思想是在激活窗口时调用一个过程,类似于低级事件处理程序。