C#实现在Form里面内嵌dos窗体的方法

C#实现在Form里面内嵌dos窗体的方法。分享给大家供大家参考。具体如下:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

using System;

using System.Windows.Forms;

using System.Runtime.InteropServices;

using System.Diagnostics;

namespace cmdForm {

 public partial class Form1 : Form {

  public Form1() {

   InitializeComponent();

  }

  private void button1_Click(object sender, EventArgs e) {

   Process p = new Process();

   p.StartInfo.FileName = "cmd.exe ";//notepad.exe

   p.Start();

   System.Threading.Thread.Sleep(100);

   SetParent(p.MainWindowHandle, this.Handle);

   ShowWindow(p.MainWindowHandle, 3);

  }

  [DllImport("User32.dll ", EntryPoint = "SetParent")]

  private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

  [DllImport("user32.dll ", EntryPoint = "ShowWindow")]

  public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);

 }

}

时间: 2024-07-30 16:04:14

C#实现在Form里面内嵌dos窗体的方法的相关文章

panel内嵌程序窗体

function RunAppInPanel(const AppFileName: string; ParentHandle: HWND; var WinHandle: HWND): Boolean; var si: STARTUPINFO; pi: TProcessInformation; begin Result := False; // 启动进程 FillChar(si, SizeOf(si), 0); si.cb := SizeOf(si); si.wShowWindow := SW_S

C# winform datagridview 无需点击两次即可编辑内嵌控件的方法和删除默认的空行的方法

? 1 2 3 4 //点击一下即可对DataGridView中内嵌控件进行编辑,不需要二次点击 dgv.EditMode =DataGridViewEditMode.EditOnEnter; //DataGridView无默认行 dgv.AllowUserToAddRows = false; C# winform datagridview 无需点击两次即可编辑内嵌控件的方法和删除默认的空行的方法

C#实现在Form上截取消息的两种方法

比较常用的是重载Form的DefWndProc方法,例如截取鼠标按下的消息: protected override void DefWndProc(ref Message m) { if ( m.Msg == 0x0201 ) { MessageBox.Show(m.Msg.ToString()); } else { base.DefWndProc (ref m); } } 还可以通过另一种办法,使用IMessageFilter 接口: public class MessageFilter :

关于按照不同的标准设定每行表格中内嵌控件的方法

今天小芸在做表格控件的时候遇到一个问题,即根据不同的情况设定不同行的RspostoryItemEdit控件的属性,她用的是Button,于是我开始研究怎么做,大概想到了两种思路,一种是在绑定完数据源后,遍历每一行,设定RspostoryItemEdit控件的属性,先获取到单元格,然后将单元格转化为控件类型,但实际操作中发现,利用   GridView.GetRowCellValue  方法发现获取到的仅仅是该单元格的值,非为控件,于是这种思路放弃了. 第二种思路是,在绑定数据源的时候,也就是Rs

VC内嵌汇编基础知识

http://www.cppblog.com/xingkongyun/archive/2008/12/21/70003.html 为了加速游戏,一提起汇编语言,大家也许会感到很神秘.其实如果你学起来就会发现,它并非想象中那样难.特别是内嵌汇编,由于它和C++紧密结合, 使你不必考虑很多烦琐的细节(例如输入输出函数的写法),学习起来比较容易.使用内嵌汇编,特别是使用MMX指令,可以大大提高各种游戏中常见特效的速 度,对于编出一个漂亮的游戏非常重要.学好汇编语言还有一个特别有趣的用处:可以观察和看懂

Delphi实现窗体内嵌其他应用程序窗体

实现原理是启动一个应用程序,通过ProcessID得到窗体句柄,然后对其设定父窗体句柄为本程序某控件句柄(本例是窗体内一个Panel的句柄),这样就达成了内嵌的效果. 本文实现的是内嵌一个记事本程序,如下图: 在实现细节上需要注意几点: 为了美化程序的嵌入效果,需要隐藏其标题栏 在外部窗体大小变化时,需要内嵌的窗体也随之变化大小 外部程序退出时,内嵌的程序也要退出 下面是例子程序.新建窗体,上面放置一个Panel控件,名为pnlApp,然后按下面代码编写: ? unit frmTestEmbed

Html 内嵌 选择器属性 Dom操作 JavaScript 事件

HTML标签: 一.通用标签(一般标签) 1.格式控制标签 <font color="#6699aa" face="楷体" size="24">文字</font><b>加粗</b><i>倾斜</i><u>下划线</u><br/>换行 ** 空格 **<center>居中</center> * 2.内容标签 <h

块级元素与内嵌元素

常见的块级元素包括:div.blockquote.列表元素(dl.ol.ui).fieldset.form.h1-h6.hr.p.pre.table等. 内嵌元素包括:span.a.img.label.所有表单输入元素.iframe.object等.

java发送内嵌图片邮件

前言: 博客系统中需要邮件服务的功能,以前写过类似的功能,不过功能太简单了,仅仅是发送文本内容,现在尝试一下发送内嵌图片邮件! 准备工作: 请参考:http://www.cnblogs.com/hujunzheng/p/4792831.html 整体效果: 发送端:网易邮箱:接收端:qq邮箱. 1.web前端 2.在网易邮箱“已发送”中可以看见通过java代码发送的邮件 3.同样在qq邮箱中也可以看到这样的效果 实现过程: 1.web前端(bootstrap布局) <form action=&quo