在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
首先,我要仔细的声明下,本文讲的是接受命令行参数,让程序启动。而不是启动那个黑黑的框。。。我要实现的效果和它么有关系 网上那些千篇一律,只管Ctrl+C,Ctrl+V,采集来的文章,本人已经深受其害,浪费了不少时间!BS~~ 先看下这篇文章:Winform程序接收命令行参数。一看标题,恩…和我的想法一样,不过一看内容,大为失望。不过呢,这里既然出现了2个API函数,先测试下,收藏着。 /// <summary> /// 启动控制台 /// </summary> /// <returns></returns> [DllImport("kernel32.dll")] public static extern bool AllocConsole(); /// <summary> /// 释放(关闭)控制台 /// </summary> /// <returns></returns> [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函数: /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } 我们只需改成这样: /// <summary> /// 应用程序的主入口点。 /// </summary> [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参数,剩下的代码。。。看你的需求咯。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论