我创建了一个看起来像新闻自动收报机的应用程序。它假设在一台机器上运行,它总是在PPT幻灯片上运行。我已经设定 this.TopMost = true
因此,自动收报机应用程序与PPT重叠。但是我想要一起看到自动收报机应用程序和ppt。只有在我可以级联应用程序时才可以这样做。
有人可以帮忙吗?
答案 0 :(得分:2)
不要使用TopMost = true,而是为两个应用程序设置窗口边界。 诀窍只是如何为PPT应用程序设置窗口矩形。
using System;
using System.Runtime.InteropServices;
using System.Diagnostics;
[StructLayout(LayoutKind.Sequential)]
struct RECT
{
public int left;
public int top;
public int right;
public int bottom;
}
class WindowHelper
{
[DllImport("user32.dll")]
static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth,
int nHeight, bool bRepaint);
static void SetWindowRect()
{
Process p = new Process();
p.StartInfo.FileName = "PPT.exe";
p.Start();
p.WaitForInputIdle();
IntPtr hWnd = p.MainWindowHandle;
int width = 300;
int height = 600;
// you can use Screen.PrimaryScreen.WorkingArea to set proper size
MoveWindow(hWnd, 0, 0, width, height, true);
}
}