C#在面板内运行exe

时间:2017-08-14 17:13:23

标签: c#

我正在尝试在我的代码面板中打开一个已编译的exe,并且该程序只保留在此面板内,换句话说,如果我移动窗口或者即使我关闭窗口,它也会起到相同的作用程序。 它正在为一些程序工作,例如#34; notepad.exe",但是其他一些程序没有(例如它没有用于calc.exe),它们只是坚持在小组外打开,以便在我需要帮助时使用。

到目前为止我的代码:

    public partial class Form1 : Form
    {
        [DllImport("USER32.DLL")]
        static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
        [DllImport("USER32.dll")]
        private static extern bool MoveWindow(IntPtr hwnd, int x, int y, int cx, int cy, bool repaint);

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            Process process = Process.Start("calc.exe");
            process.WaitForInputIdle();
            SetParent(process.MainWindowHandle, this.panel1.Handle);
            MoveWindow(process.MainWindowHandle, 0, 0, this.Width - 90, this.Height, true);
        }
    }

我是C#的真正新手,到目前为止我取得的进展来自youtube的一些视频甚至是这里,但它并没有完全按照我的需要工作,所以我不介意重新制定整个代码,只要它只作为一个程序。

0 个答案:

没有答案