网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
如何判断应用程序运行于GUI模式还是命令行
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式

越来越多的应用程序提供以命令行的方式来运行,通常的做法有两种:单独给应用程序写一个基于命令行运行的控制台程序,用户运行这个程序时它一定是以命令行的方式来运行;以GUI和Command Line共享一个应用或exe文件,但通过不同的arguments来判断,最终分别做不同的处理。

 

对于单独给应用程序写基于命令行运行的控制台程序,无非是通过判断传递的args数组来辨别并设置程序运行所需要的参数,最终设定各项参数而完成所需要的工作。在这里建议提供对于/?的帮助菜单,方便用户查询

 

if (args.Length != 1)

{

    Console.WriteLine("ERROR: Invalid Argument.");

    Console.WriteLine(@"Type ''MyConsole.exe /?'' for usage.");

    return false;

}

else

{

    if (args[0] == @"/?")

    {

    Console.WriteLine("The syntax for this program is:");

    Console.WriteLine("MyConsole.exe [project file]");

    Console.WriteLine();

    Console.WriteLine("[project file]                 The path to the XML project file.");

    return false;

    }

    else

{

    string strFilePath = args[0];

        if (File.Exists(strFilePath))

        {

            ……

            return true;

        }

        else

        {

            Console.WriteLine("Can not find the specified project file:''" + args[0] + "''");

            Console.WriteLine("Please check the path of project file and try again.");

            return false;

        }

    }

}
 

 

在调试这样的程序时可以通过给项目属性中设置参数来调试,这样设置的参数在项目启动时会以参数的形式传入。


 

对于一套程序入口却分别接受GUI调用和Command Line方式运行,我们就必须判断当前是以什么方式来运行程序的,检测当前的运行宿主环境就可以帮助我们来判断出到底是否是运行在Console模式下。通过检测程序运行的进程我们可以判断出它的运行方式。

 

[DllImport("kernel32.dll", SetLastError = true)]

static extern bool AllocConsole();

[DllImport("kernel32.dll", SetLastError = true)]

static extern bool FreeConsole();

[DllImport("kernel32", SetLastError = true)]

static extern bool AttachConsole(int dwProcessId);

[DllImport("user32.dll")]

static extern IntPtr GetForegroundWindow();

[DllImport("user32.dll", SetLastError = true)]

static extern uint GetWindowThreadProcessId(IntPtr hWnd, out int lpdwProcessId);

 

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号