如何在c#中将应用程序集中在父应用程序上

时间:2011-11-30 11:23:07

标签: c# winforms

我正在编写一个由运行.exe文件的第三方应用程序启动的应用程序。

有没有办法让我们的应用程序以其他应用程序为中心?

谢谢, 罗布。

编辑:我无法访问第三方应用程序,因此无法传递其位置或调整其位置。

4 个答案:

答案 0 :(得分:2)

使用FindWindow查找第三方应用窗口,然后使用GetWindowRect获取3方应用窗口位置,然后您可以计算窗口位置应该在哪里。

答案 1 :(得分:2)

首先,您需要找到第三方应用程序的窗口。这可以通过多种方式完成,具体取决于该应用程序。您可以使用FindWindow进行P / Invke。如果应用程序标题总是相同或者它具有唯一的类名(可以使用Spy ++找到),这将起作用。

另一个稍微笨拙但更强大的方法是使用GetWindow / GetNextWindow遍历所有顶级窗口并逐个检查它们。

获得应用程序后,您可以调用GetWindowPos或GetWindowRect来查找它的位置。

答案 2 :(得分:1)

如果您希望应用程序以屏幕为中心,则可以设置 StartPostion

this.StartPosition = FormStartPosition.CenterScreen; in the form constructor.

查看msdn

如果您希望您的应用程序成为调用它的其他applciation的中心,您可以将该应用程序的Loaction传递给您的应用程序,然后它可以通过指定其Location属性来重新调整它。

答案 3 :(得分:0)

您可以尝试将两个应用程序集中在一起。这样,第二个将以第一个为中心。

其他方法是使用命令arugments将第一个窗口的位置传递给第二个窗口, 所以第二个应用程序会知道一旦运行就把它放在哪里。