从另一个应用程序复制文本数据

本文关键字:文本 数据 复制 应用程序 另一个 | 更新日期: 2023-09-27 18:20:46

我需要从某个win应用程序(而不是我的)接收数据。此时应用程序窗口可能处于非活动状态。我需要的数据在表中表示,所以我无法使用WM_GETTEXT和WM_COPY,因为它们只从文本框、文本区域等检索文本。我可以在这个表上手动进行选择,我所需要的只是通过模拟Ctrl+C从这个选择中复制文本,将数据复制到剪贴板。我试着用这种方式发送密钥序列

PostMessage(hwnd, WM_KEYDOWN, 0x11, 0x001D0001);
PostMessage(hwnd, WM_KEYDOWN, VkKeyScan('c'), 0x002E0001);
PostMessage(hwnd, WM_CHAR, VkKeyScan('c'), 0x002E0001);
PostMessage(hwnd, WM_KEYUP, VkKeyScan('c'), 0xC02E0001);
PostMessage(hwnd, WM_KEYUP, 0x11, 0xC01D0001);

但也没有成功。这对记事本很好,但对我的桌子不好。有没有其他方法可以从那里获取文本数据?

从另一个应用程序复制文本数据

您提到了c#,所以我假设另一个win应用程序也是.Net,在这种情况下,您可以使用以下技术获取数据:Hawkeye-.Net运行时对象编辑器