博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(转)C#_WinForm接收命令行参数
阅读量:5916 次
发布时间:2019-06-19

本文共 1644 字,大约阅读时间需要 5 分钟。

本文转载自:

首先,我要仔细的声明下,本文讲的是接受命令行参数,让程序启动。而不是启动那个黑黑的框。。。我要实现的效果和它么有关系

网上那些千篇一律,只管Ctrl+C,Ctrl+V,采集来的文章,本人已经深受其害,浪费了不少时间!BS~~

先看下这篇文章:。一看标题,恩…和我的想法一样,不过一看内容,大为失望。不过呢,这里既然出现了2个API函数,先测试下,收藏着。

/// /// 启动控制台/// /// 
[DllImport("kernel32.dll")]public static extern bool AllocConsole();/// /// 释放(关闭)控制台/// ///
[DllImport("kernel32.dll")]public static extern bool FreeConsole();

在WinForm中调用黑框(控制台),就可以用此来实现。具体的使用…自己实践吧…

现在说正题,说明下我要实现的功能:

举个例子,在cmd.exe下,我们输入shutdown,这个命令可以用来重启系统,关闭系统,等等。它有一系列的参数可选:

我们可以在C:\Windows\System32\下找到shutdown.exe这个Exe可执行文件。这个程序接受命令行参数,当参数符合一个内置参数时,执行某个操作。

我们就是要实现这种功能!这样的程序可以在任何一个项目中使用,通过System.Diagnostics.Process.Start("你的程序.exe 参数1")。

一般情况下,每个项目都有一个Main函数,它是整个程序的入口点,那么参数也肯定在这里被传递!

默认的Main函数:

/// /// 应用程序的主入口点。/// [STAThread]static void Main(){    Application.EnableVisualStyles();    Application.SetCompatibleTextRenderingDefault(false);    Application.Run(new Form1());}

我们只需改成这样:

/// /// 应用程序的主入口点。/// [STAThread]static void Main(string[] args){    Application.EnableVisualStyles();    Application.SetCompatibleTextRenderingDefault(false);    if (args.Length == 0)        Application.Run(new Form1());    else        Application.Run(new Form1(args));}

Form1窗体的构造:

string[] args=null;public Form1(){    InitializeComponent();}public Form1(string[] args){    InitializeComponent();    this.args = args;}

真的是很简单很简单的几行代码。。。我们有了args参数,剩下的代码。。。看你的需求咯。

System.Diagnostics.Process.Start("程序的路径", "参数1 参数2"); 第一个参数是aaa.exe 的路径,第二个参数是用空格分开的两个参数组成的字符串。 aaa.exe中的main方法写做 static void Main(string[] args) 用Process.Start启动aaa.exe时main方法的args参数就是Process.Start传入参数用转换成的长度为2的数组

转载于:https://www.cnblogs.com/wpcnblog/p/5111927.html

你可能感兴趣的文章
QAD与天帆智能签约 强强联合,助力本土制造业
查看>>
Spring Cloud综合实战 - 基于TCC补偿模式的分布式事务
查看>>
如何在gitlab 数据备份
查看>>
Oracle性能调优条带宽度
查看>>
Linux 脚本编写基础(一)--语法
查看>>
oracle 区管理和段空间管理小结
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
CDH HDFS文件系统垃圾间隔设置
查看>>
java抽象数据类型
查看>>
Tigase服务器安装以及集群
查看>>
CentOS7_LAMP-https-discuz搭建,WordPress搭建及phpMyadmin搭建_2015091902
查看>>
postgres 定期备份shell
查看>>
写在C#.NET通用权限管理系统组件源码销售额突破(23000元/月)大关,客户数量超过156人...
查看>>
大哥你都有房子有车子还拿着双份工资收入,不能总想让兄弟免费来杭州帮忙啊,开不来这个口啊...
查看>>
响应式网页设计:web产品RWD概念
查看>>
糟糕的程序员有哪些招牌特质?
查看>>
SVN文件不显示绿色勾子的解决方法
查看>>
RHCE_LAB(2)SSH远程登录自动验证(不输入用户登录密码)的实现
查看>>
Linux命令之uniq
查看>>