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

IntPtr ptr = GetForegroundWindow();

int processId;

GetWindowThreadProcessId(ptr, out processId);

Process process = Process.GetProcessById(processId);

if (process.ProcessName == "cmd")

{

    AttachConsole(process.Id);

   

    Console.WriteLine("start from command line");

    //return false;

    //isStartFromCommandLine = true;

   

    //TODO: Hide the GUI and perform the actions.

 

    //Release the console.

FreeConsole();

    return;

}

 

//GUI mode

Page01StartUp form = new Page01StartUp();

form.Show();

form.Focus();

form.BringToFront();

Application.Run();
 

 

在这个Case中,程序除了以正常的GUI方式运行外就是命令行方式运行,所以只区别判断了命令行方式,其余时候正常的以GUI方式运行即可。

 

还有一种方式是这个程序可以在命令行方式里通过不同的参数来启动GUI模式运行,Console模式运行等。通过添加一个来表示是以GUI还是console运行的参数来的会更直接些。

 

using System;

using System.Collections.Generic;

using System.Text;

using System.Runtime.InteropServices;

using System.Diagnostics;

using Microsoft.Win32;

using System.Windows.Forms;

 

namespace ConsoleApplication1

{

    class Program

    {

        [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);

 

        static void Main(string args)

        {        

            string mode = args.Length > 0 ? args[0] : "gui"; //default to gui           

            if (mode == "gui")           

            {               

                MessageBox.

网学推荐

免费论文

原创论文

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