是否有可能从另一个应用程序获取另一个应用程序的窗口?

时间:2017-12-06 10:19:32

标签: c# wpf winforms

我有两个项目(TestVisual和RecordPlayBack)。 TestVisual有两个窗口(MainWindow和TestWindow)。我可以使用下面的代码

来获取TestWindow实例
zoom

现在,我从TestVisual.wpf应用程序运行RecordPlayBack.exe。因此,Application.Current持有RecordPlayBack应用程序,其中TestWindow不可用。在这种情况下,如何获取TestVisual应用程序的TestWindow实例?

我已尝试过以下代码,

var windows = System.Windows.Application.Current.Windows;
IntPtr twHandle = new System.Windows.Interop.WindowInteropHelper(windows[2]).Handle;

请建议我任何想法。

注意: RecordPlayBack项目作为参考添加到TestVisual项目。

谢谢,

1 个答案:

答案 0 :(得分:0)

我可以使用下面的代码

在另一个应用程序中获取窗口句柄
System.Diagnostics.Process[] processes = System.Diagnostics.Process.GetProcesses();
foreach(System.Diagnostics.Process p in processes)
{
    if(p.MainWindowTitle == "Test Window")
    {
        twHandle = p.MainWindowHandle;
        break;
    }
}