zoukankan      html  css  js  c++  java
  • 把第三方的exe程序嵌入C#界面上

    public partial class eTerm_Form : WinFormsUI.Docking.DockContent
    {
    public eTerm_Form()
    {
    InitializeComponent();
    }

    Process process = null;
    IntPtr appWin;

    [DllImport("user32.dll", SetLastError = true)]
    private static extern long SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
    [DllImport("user32.dll", SetLastError = true)]
    private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
    [DllImport("user32.dll", SetLastError = true)]
    private static extern long SetWindowPos(IntPtr hwnd, long hWndInsertAfter, long x, long y, long cx, long cy, long wFlags);
    [DllImport("user32.dll", SetLastError = true)]
    private static extern bool MoveWindow(IntPtr hwnd, int x, int y, int cx, int cy, bool repaint);

    private void eTerm_Form_Resize(object sender, EventArgs e)
    {
    if (this.appWin != IntPtr.Zero)
    MoveWindow(appWin, 0, 0, this.Width, this.Height, true);
    }

    private void eTerm_Form_Load(object sender, EventArgs e)
    {
    try
    {
    process = System.Diagnostics.Process.Start(@”E:MyProjectNewSkyrickieManageSkyrickieManageShenZhen.skyrickie.SkyrickieManagebinDebugSkyrickieManage.exe”);
    process.WaitForInputIdle();
    appWin = FindWindow(null, “skyrickie个人管理系统登录”);
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message, “Error”,MessageBoxButtons.OK, MessageBoxIcon.Error);
    }

    SetParent(appWin, this.Handle);
    MoveWindow(appWin, 0, 0, this.Width, this.Height, true);
    }

    private void eTerm_Form_FormClosing(object sender, FormClosingEventArgs e)
    {
    try
    {
    if (!process.HasExited)
    process.Kill();
    }
    catch
    {
    }
    }
    }

  • 相关阅读:
    03-温故知新(下载网络资源)
    02-Inet套接字地址
    01-InetAddress常用方法
    递归删除文件夹跟拷贝文件夹
    File中常用的方法
    简单日志功能的实现
    简单二分查找算法
    应用打开其xlspptdoc等
    PPT文件分析摘记
    ReactNative小笔记
  • 原文地址:https://www.cnblogs.com/skyay/p/4216201.html
Copyright © 2011-2022 走看看