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
    {
    }
    }
    }

  • 相关阅读:
    Java类的加载及实例的创建
    快速排序--递归法
    个位数统计
    求最长公共字串
    a标签绑定点击事件失败
    js中取el表达式问题
    springmvc json乱码问题
    tomcat发布时候jar包问题
    Mybatis一对一映射resultMap子标签中顺序问题
    spring和springmvc包扫描问题
  • 原文地址:https://www.cnblogs.com/skyay/p/4216201.html
Copyright © 2011-2022 走看看