以编程方式将文本粘贴到另一个应用程序的文本框中

本文关键字:文本 应用程序 另一个 编程 方式 | 更新日期: 2023-09-27 17:56:14

我希望能够将结果从我的应用程序粘贴到另一个应用程序。 一直在谷歌搜索,我能找到的只是应用程序命令.粘贴。 这会将其粘贴到我的应用程序中,而不是另一个应用程序中。

背景:我的应用程序需要与一个非常旧的应用程序进行交互。 此应用程序尚未开发,并且没有任何 API 调用。这意味着任何像"通过DLL链接您的应用程序"这样的答案只有在它还包含时间机器:P时才会被排除在外 因此,解决方案是简单地将结果从我的应用程序粘贴到旧应用程序。

出于工作流原因,客户端希望我的应用程序消失并自动将结果粘贴到打开的文本框中(如果失败,则手动粘贴结果)。

隐藏窗口很简单,但是如何找到当前活动的应用程序然后将其粘贴到其中? 这可能吗? 另请注意,此应用程序不是 .NET(如果我是正确的,则为 VB 6)。

以编程方式将文本粘贴到另一个应用程序的文本框中

您可以调出其他应用程序并发送组合键...像这样:

[DllImport ("User32.dll")]
static extern int SetForegroundWindow(IntPtr hwnd);
public static void PasteToApplication(string appName)
{
  var proc = Process.GetProcessesByName(appName).FirstOrDefault();
  if(proc != null)
  {
    var handle = proc.MainWindowHandle;
    SetForegroundWindow(handle);
    SendKeys.SendWait("^v");
  }
}

这应该会打开其他应用的窗口并发送 ctrl-v 命令。通过一些实验,您可以找到要将粘贴发送到的控件的确切句柄,并将焦点设置在它上面