在 WinForm 项目选项卡中运行 exe

2023-12-13

我有兴趣使用我正在编写的 winform 应用程序执行以下操作,以在 Visual Studios 2010 IDE 中的 c# 选项卡中打开 .exe。

我目前可以使用以下代码通过在所需选项卡中单击按钮来打开程序:

        string str = @"-INSERT FILEPATH HERE-";//took file path out as i have a few exes i'm wanting to add. 
        Process process = new Process();
        process.StartInfo.FileName = str;
        process.Start();

现在我怎样才能让这个可执行文件在我的 winform 中作为选项卡或选项卡打开?我愿意接受任何一种情况的建议。

SOLVED:

using System.Runtime.InteropServices;
    using System.Threading;
    [DllImport("user32.dll", SetLastError = true)]
    private static extern bool MoveWindow(IntPtr hwnd, int x, int y, int cx, int cy, bool repaint);
    [DllImport("user32.dll", SetLastError = true)]
    static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

   public GUI()
    {
        // Initialize form fieds
        InitializeComponent();
        openProgram()
    }
    private void openProgram()
    {

        process.StartInfo.FileName = "-filepathhere-";

        process.Start();

        IntPtr ptr = IntPtr.Zero;
        while ((ptr = process.MainWindowHandle) == IntPtr.Zero) ;
        SetParent(process.MainWindowHandle, trackerPanel.Handle);
        MoveWindow(process.MainWindowHandle, 0, 0, this.Width - 90, this.Height, true);

    }

您可以使用 SetParent api 来设置可执行文件窗口的父窗口。将面板添加到 TabControl 并使用下面的代码将可执行窗口的父窗口分配给面板的父窗口。

[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

private void button2_Click(object sender, EventArgs e)
{
    var process = new Process();
    process.StartInfo.FileName = "notepad.exe";
    process.Start();
    SetParent(process.MainWindowHandle, panel1.Handle);
}

要从面板中删除窗口,请使用相同的代码,但将父句柄设置为 IntPtr.Zero

SetParent(process.MainWindowHandle, IntPtr.Zero);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 WinForm 项目选项卡中运行 exe 的相关文章

  • 使用sqlbulkcopy之前如何创建表

    我有一个 DBF 文件 我正在尝试导入该文件 然后将其写入 SQL 表 我遇到的问题是 如果我使用 SqlBulkCopy 它需要我提前创建表 但在我的场景中这是不可能的 因为 dbf 文件不断变化 到目前为止 这是我的代码 public
  • 如何向WebRequest添加参数?

    我需要从 Web 服务调用一个方法 所以我编写了以下代码 private string urlPath http xxx xxx xxx manager string request urlPath index php org get or
  • 显示 div 内的用户名列表

    我是 jQuery 新手 在我的项目中 我创建了一个类User其中代码如下所示 static ConcurrentDictionary
  • C++ 中的“int”默认是“signed long int”吗?

    Is int默认情况下signed long int in C 它是否依赖于平台和 或编译器 如果是这样 怎么办 EDIT 以下任何一项是否保证是重复的 signed short int signed int signed long int
  • 读取大文件并制作字典

    我有一个大文件 我需要读取它并从中制作字典 我希望这一切能够尽可能快 然而我的Python代码太慢了 这是一个显示问题的最小示例 首先制作一些假数据 paste lt seq 20000000 lt seq 2 20000001 gt la
  • BufferBlock 连续

    我想使用以下方式实现消费者 生产者模式BufferBlock
  • 使用 GCHandle 将大型结构数组从 C# unity 脚本传递到 C++ dll 在 C++ 函数执行后崩溃

    我想从 C unity 脚本将结构数组传递给 c 本机插件 我做了如下操作 我可以访问数据 但我的应用程序在执行 c 函数后崩溃 我不知道为什么 C side StructLayout LayoutKind Sequential publi
  • ASMX Web 服务,测试表单仅在本地计算机上适用于一种 WebMethod

    我有一个正在测试的 ASMX WebService 并且在大多数方法上我都可以使用测试表单进行测试 然而 我确实有一种方法 测试表上写着 The test form is only available for requests from t
  • 使用默认行为将模型绑定到接口

    我正在尝试将控制器操作绑定到接口 但仍保持默认的绑定行为 public class CoolClass ISomeInterface public DoSomething get set ISomeInterface public clas
  • AcceptSocket 超时?

    是否有可能AcceptSocket on a TcpListener具有超时的对象 以便它偶尔被中断 TcpListener server new TcpListener localIP port server Start while sh
  • 应用新设置时如何防止 GraphicsDevice 被丢弃?

    我的游戏窗口允许手动调整大小 这意味着它可以像任何其他普通窗口一样通过拖动其边缘来调整大小 游戏还利用了RenderTarget2D rt2d 在主 Draw 方法中设置主渲染目标 GraphicsDevice SetRenderTarge
  • Web 文本编辑器中的 RTF 格式

    网络上是否有支持 RTF 格式文档输入的文本编辑器 我知道这对 webdev 来说有点奇怪 但我需要从数据库中读取 RTF 文档 并在基于 Web 的文本编辑器中对其进行编辑 然后将其存储回 RTF 中 在我在转换工具上投入太多资金之前 我
  • C# 反序列化过程中创建指向父对象的指针

    我有这样的课程 Serializable public class child public Parent parent Serializable public class Parent public List
  • 确定相关词的编程方式?

    使用网络服务或软件库 我希望能够识别与词根相关的单词 例如 座位 和 安全带 共享词根 座位 但 西雅图 不会被视为匹配 简单的字符串比较对于这类事情似乎是不可行的 除了定义我自己的字典之外 是否有任何库或 Web 服务不仅可以返回单词定义
  • Code::Blocks 中的调试似乎不起作用 - 缺少调试符号

    我正在尝试在 Code Blocks 中调试程序 我跟着本指南 http wiki codeblocks org index php title Debugging with Code Blocks and 这个短视频 http www y
  • 按 Enter 继续

    这不起作用 string temp cout lt lt Press Enter to Continue cin gt gt temp cout lt lt Press Enter to Continue cin ignore 或更好 in
  • 在 C# 窗口应用程序中运行 C/C++ 控制台应用程序?

    现在 我想开发一个简单的应用程序 因此我决定最快的编码方式是 C NET 但现在 我很难实现我需要的功能之一 我想做的是在 C 应用程序的窗口内运行 C C 控制台应用程序 就像在虚幻前端中一样 添加一点通信方式 以便我可以为控制台应用程序
  • 检查另一种形式的线程是否仍在运行

    我有一个涉及两个窗体的 Windows 窗体应用程序 子表单用于将数据导出到 CSV 文件 并使用后台工作者写入文件 当这种情况发生时 我隐藏了表格 当后台工作程序运行时 父窗体仍然处于活动状态 因此即使后台工作程序正在写入文件 用户也可以
  • C# 和断点 - 这里有魔术师吗?

    我有这个 public static void ByLinkText string text for var i 0 i lt 50 i try Setup Driver FindElement By LinkText text Click
  • 如何获取运行或段落的高度

    我找到了Run or Paragraph in FlowDocument现在我需要知道HEIGHT of it i e while navigator CompareTo flowDocViewer Document ContentEnd

随机推荐

  • 这段代码是否安全,不会受到 SQL 注入的影响

    我想让我的代码尽可能安全 免受任何类型的攻击 我希望对下面使用的简单代码有一些了解 如果有任何关于如何使其更安全 如果它很脆弱 以及为什么会变得更安全的指示 那就太棒了 我读到 使用准备好的语句是防范攻击的最佳实践
  • 将块元素排列在一条水平线上

    我不知道 要么我不太擅长 搜索 艺术 要么这个话题太简单了 通常没有人问这个问题 但自从我开始我的网站以来 我一直在搜索这个问题 我的网页上只有四个块元素 第一个 Block 元素单独显示在顶部 第二个 第三个和第四个块元素 我想从下一行排
  • scipy.interpolate 中的 interp1d 函数使用什么算法

    所以我正在为我的数值课程编写一个Python程序 并且我必须编写一个三次样条程序 所以我实现了书中给出的三次样条公式Chapra 和 canale 的数值方法 and 数值数学 作者 chenny 和 kincaid 所以我的数据是 x 1
  • 需要在单引号xslt中分配属性值

    我们需要使用 xslt 转换从 xml 创建一个 html 我们需要生成的 html 锚标记为 a a
  • 将 UUID 与 EclipseLink 和 PostgreSQL 结合使用

    我想使用 PostgreSQL uuid 类型作为对象的主键 为此 我创建了一个转换器 实现 Converter 接口 下面是相关代码 Override public void initialize DatabaseMapping mapp
  • 如何替换一堆文件中的多行字符串

    bin sh old hello new world sed i s old new g grep old rl 前面的脚本仅适用于单行文本 我如何编写一个脚本可以替换 多行文本 old line1 line2 line3 new newt
  • 检测iframe内容是否加载成功

    我有一个包含 iframe 的小部件 用户可以配置此 iframe 的 url 但如果无法加载该 url 它不存在或用户无法访问互联网 则 iframe 应该故障转移到默认的离线页面 问题是 如何检测iframe是否可以加载 我尝试订阅 l
  • ValueError:发现样本数量不一致的数组 [6 1786]

    这是我的代码 from sklearn svm import SVC from sklearn grid search import GridSearchCV from sklearn cross validation import KFo
  • 具有许多请求的 Blazor Server 应用程序使网站不稳定

    我创建了 Blazor 服务器 Web 应用程序 并将其部署在 Azure 应用服务上 并在Network选项卡我看到很多请求https mywebsites0123 azurewebsites net blazor id 3OO T6L4
  • 编码 ui 测试完成后如何保持浏览器打开?

    我正在对 Web 应用程序使用 Visual Studio 2012 编码 UI 测试 我有一个登录应用程序的测试 该测试启动浏览器 找到登录对话框 输入凭据 然后单击 确定 我有一个断言 可以在登录后检查正确的网址 该测试似乎运行正常 我
  • 如何避免合并分布式表上的高基数子选择聚合

    在 Clickhouse 中 我有一个大表 A 其中包含以下列 date user id operator active 在表 A 中 事件已经根据日期 user id 和操作员进行了预先聚合 而 活动 列表示用户在给定日期存在某种类型的活
  • 如何在iPhone应用程序中通过代码获取用户的当前位置?

    我想从我的 iPhone 应用程序获取用户的当前位置 我想在我的应用程序中显示用户当前的位置 例如国家 地区名称 纬度 经度信息 我也想在谷歌地图上显示位置 我也尝试过谷歌搜索 但无法得到确切的答案 我已经得到了要使用的信息CLLocati
  • 将 B 样条曲线拟合到控制路径

    我意识到在 R 中使用 B 样条存在很多问题和答案 但我还没有找到这个 看似简单 问题的答案 给定一组描述控制路径的点 如何拟合 B 样条曲线并沿着曲线提取给定数量的点 例如 100 以进行绘图 问题是路径在 x 和 y 上都不是单调的 控
  • 如何在 Java 中替换字符串中的点 (.)

    我有一个名为persons name 我想更换DOT with 即我的输出将是persons name 我尝试了这段代码 String a str xpath replaceAll a 我收到 StringIndexOutOfBoundsE
  • 如何向网站添加一些非标准字体?

    有没有办法在网站上添加一些自定义字体而不使用图像 Flash或者其他一些图形 例如 我正在开发一个婚礼网站 我发现了很多适合该主题的漂亮字体 但我找不到在服务器上添加该字体的正确方法 我如何将该字体与 CSS 一起包含到 HTML 中 没有
  • R:检查一组变量是否形成唯一索引

    我有一个大数据框 我想检查一组 因子 变量的值是否唯一标识数据的每一行 我当前的策略是按我认为是索引变量的变量进行聚合 dfAgg aggregate dfTemp var1 by list dfTemp var1 dfTemp var2
  • 在循环内调用控制器(crawler4j-3.5)

    嗨 我正在打电话controller inside for loop 因为我有超过 100 个 url 所以我将所有内容都放在列表中 我将迭代并crawl在页面上 我也为 setCustomData 设置了该 url 因为它不应该离开域 f
  • 查看不同dtype下的对象数组

    我想查看一个具有封装整行的 dtype 的对象数组 data np array a 1 a z b a dtype object dt np dtype x object y object data view dt 我收到错误 TypeEr
  • Xamarin 错误:未安装框架:.NETPortable,版本=v4.5

    我成功安装了 Xamarin 并创建了一个新项目 根本没有代码 我在引用下收到以下错误 并收到 Xamarin Forms 丢失的错误 我尝试搜索 但在修复建议有效的地方没有看到同样的错误 谢谢 Error Framework not in
  • 在 WinForm 项目选项卡中运行 exe

    我有兴趣使用我正在编写的 winform 应用程序执行以下操作 以在 Visual Studios 2010 IDE 中的 c 选项卡中打开 exe 我目前可以使用以下代码通过在所需选项卡中单击按钮来打开程序 string str INSE