我正在尝试在我的代码面板中打开一个已编译的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的一些视频甚至是这里,但它并没有完全按照我的需要工作,所以我不介意重新制定整个代码,只要它只作为一个程序。