是否可以使用C#代码级联ppt幻灯片放映窗口和我的应用程序

时间:2010-05-11 12:49:21

标签: c# winforms

我创建了一个看起来像新闻自动收报机的应用程序。它假设在一台机器上运行,它总是在PPT幻灯片上运行。我已经设定     this.TopMost = true

因此,自动收报机应用程序与PPT重叠。但是我想要一起看到自动收报机应用程序和ppt。只有在我可以级联应用程序时才可以这样做。

有人可以帮忙吗?

1 个答案:

答案 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);
    }
}