zoukankan      html  css  js  c++  java
  • (转)C#_WinForm接收命令行参数

    本文转载自:http://blog.csdn.net/lysc_forever/article/details/38356007

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

    网上那些千篇一律,只管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:WindowsSystem32下找到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参数,剩下的代码。。。看你的需求咯。

    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的数组
  • 相关阅读:
    深入理解 CSS3 弹性盒布局模型
    【css基础】文本对齐,水平对齐,垂直对齐
    使用百度地图API进行坐标系转换
    dtgrid 手动条件删除表格中的某一行
    短时间生成大量不重复随机数字
    Android与.Net交互模拟用户屏幕操作添加APN和网络4G/3G切换
    (三)SpringBoot定义统一返回result对象
    (二)SpringBoot整合常用框架Druid连接池
    (一)搭建自己的SpringBoot后台框架整合MyBatis
    插件-鼠标或手指滑动事件
  • 原文地址:https://www.cnblogs.com/wpcnblog/p/5111927.html
Copyright © 2011-2022 走看看