2

我是 vb 中的一个完整的菜鸟。我一直在试图弄清楚如何将击键发送回我自己的应用程序,同时最小化/或专注于另一个窗口。我想我需要使用 PostMessageA 。我在论坛上读到过。但它对我来说就像中文。我的目标是在 1 台电脑上运行 100 个这些小程序。他们只是一遍又一遍地在自己的应用程序中按下一个键。有人可以帮帮我吗?谢谢

我在想这样的事情

Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Long,  ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_CHAR As Long = &H102

PostMessage("notepad", WM_CHAR, "T", 1)

作为测试。我究竟做错了什么

4

1 回答 1

0

有几件事,其中之一是您在 VB6 论坛中找到了您的代码。从那时起,整数的大小发生了变化。LongVB6 中的A等同Integer于 VB.Net 中的 a(请参阅此 Msdn 链接)。第二个问题是您正在向String期望PostMessage窗口句柄的位置提供一个。我建议您查看这篇关于如何使用 Windows 消息将字符串发送到另一个应用程序的CodeProject 文章

您的PostMessage声明应如下所示。

Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
于 2012-04-26T03:23:27.550 回答