菜单程序 - 将焦点设置为第三方应用程序

时间:2015-06-05 03:36:06

标签: c# windows menubar

我试图通过谷歌找到答案,但我想我没有使用正确的术语。

我创建的是一个简单的Windows应用程序,由menustrip组成。该程序假设找到已经运行的现有应用程序的焦点并且"附加"本身到顶部。

这是一款较旧的窗口游戏,我正试图为它创建一个工具集。

我喜欢它是持久的,如果游戏也被移动也会跟随。但是一步一步。

我想我的问题是我试图完成的正确术语是什么。一旦我知道我会去做一些功课

1 个答案:

答案 0 :(得分:0)

您可以使用uiacomwrapper关注窗口,我甚至可以在github上提供示例应用程序。在按钮上单击应用程序将附加到IE并一起移动。

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        string lpszParentClass = "IEFrame";
        IntPtr ParenthWnd = new IntPtr(0);
        ParenthWnd = FindWindow(lpszParentClass, null);
        if (!ParenthWnd.Equals(IntPtr.Zero))
        {
            var parent = AutomationElement.FromHandle(ParenthWnd);
            Automation.AddAutomationPropertyChangedEventHandler(parent, TreeScope.Element, WindowMoved, AutomationElement.BoundingRectangleProperty);
        }
    }

    private void WindowMoved(object sender, AutomationPropertyChangedEventArgs e)
    {
        App.Current.Dispatcher.BeginInvoke(new Action(() =>
        {
            if (e.NewValue != null)
            {
                var newPosition = (Rect)e.NewValue;
                this.Left = newPosition.Left;
                this.Top = newPosition.Top;
            }
        }));
    }