c# WinForm调用控制台

摘要:
由于Windows控制台程序封装在kernel32.dll中,因此有必要描述WinForm如何调用dll。

由于Windows控制台程序是封装在kernel32.dll,所以有必要讲述一下WinForm如何调用动态链接库的步骤。

1.首先需要在调用窗体中申明using System.Runtime.InteropServices;

2.其次需要在C#语言源程序中声明外部方法,格式如下:

[DLLImport(“DLL文件”)]

修饰符 extern 返回变量类型 方法名称 (参数列表)

其中:DLL文件:包含定义外部方法的库文件;修饰符:访问修饰符,除了abstract以外在声明方法时可以使用的修饰符;返回变量类型:在DLL文件中你需调用方法的返回变量类型;方法名称:在DLL文件中你需调用方法的名称;参数列表:在DLL文件中你需调用方法的列表。

注意:外部方法的申明位置应该放在方法申明处,一般是放在类里的头部。

3.在调用出,直接调用方法即可。

下面以WinForm调用控制台程序进行举例说明:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        [DllImport("kernel32.dll")]
        public static extern bool AllocConsole();
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {           
            AllocConsole();
            System.Console.WriteLine("CYY 你好!");         
        }
    }
}

附:其实调用控制台更多的是通过创建一个类来调用,原理是一样的,同样附上实例

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace WindowsFormsApplication1
{
    public class ConsoleShow
    {
        /// <summary>
        /// 启动控制台
        /// </summary>
        /// <returns></returns>
        [DllImport("kernel32.dll")]
        public static extern bool AllocConsole();
        /// <summary>
        /// 释放控制台
        /// </summary>
        /// <returns></returns>
        [DllImport("kernel32.dll")]
        public static extern bool FreeConsole();
    }
}

这个时候,在调用的时候ConsoleShow pConsoleShow = new ConsoleShow (); pConsoleShow .AllocConsole();

免责声明:文章转载自《c# WinForm调用控制台》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇极光推送 JPush 简介 集成 MD升级docker中jdk1.7到1.8版本下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

WinForm图片抽奖器

闲着蛋疼,写个抽奖器玩玩。界面:2个按钮(一个开始,一个停止),一个label显示当前抽中人的姓名或者编号,一个定时器。原理:在窗体加载的时候,首先加载好在配置文件设置的文件夹内的所有图片保存在一个List中,并且设置好timer的时间,最好是短一点,10-20毫秒之内。在timer的Tick事件中,随机指定一个路径。 详细代码:界面的布局就 省了。配置...

winform如何保持TreeView节点展开和折叠的状态

转载:http://blog.sina.com.cn/s/blog_6abcacf5010138q5.html private Hashtable NodesStatus = new Hashtable(); private string SelectNodeFullPath = string.Empty; ///...

system执行shell命令

system - execute a shell command #include <stdlib.h> int system (const char *command); 描述 The system() uses fork to create a child process that executes a command specified...

Linux后台执行脚本 &amp;amp;与nohup

Linux后台执行脚本的方式: 0、脚本代码 [root@VM_1_3_centos apps]# cat test.php <?php sleep(5); echo "hello world! "; 1、& 符号当在前台运行某个作业时,终端被该作业占据;可以在命令后面加上& 实现后台运行。示例1、 [root@VM_1_3_c...

WinForm控件之【TreeView】

基本介绍 标签项的分层集合控件(树形控件),节点可加载图片显示。 常设置属性 CheckBoxes:树节点旁是否显示复选框; FullRowSelect:指示突出显示是否跨越树视图控件的整个宽度; Indent:每个子树节点级别的缩进距离; ItemHeight:树视图控件中每个树节点的高度; LabelEdit:指示是否可以编辑树节点的标签文本; Scr...

libvirt(virsh命令介绍)

有了virt-install是安装虚拟机的命令,当然也需要一个管理虚拟机的命令了,那就是virsh。 virsh命令使用 virsh <command> <domain-id> [OPTIONS] virsh既有命令行模式,也有交互模式,在命令行直接输入virsh就进入交互模式,virsh 后面跟命令参数,则是命令行模式。下面主要介...