亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從 C# 程序寫回命令行

如何從 C# 程序寫回命令行

C#
ABOUTYOU 2023-09-16 20:10:25
接受 CLI 參數的 Winform 應用程序在運行時會打開新的控制臺窗口,但我希望它在 CLI 中運行并返回任何 Console.WriteLine()這就是我如何分離 GUI 和控制臺static class program{    [STAThread]    [System.Runtime.InteropServices.DllImport("kernel32.dll")]    private static extern bool AllocConsole();    static void Main(string[] args){        if (args.Length > 0)        {            AllocConsole();            Console.WriteLine("Yo!");            Console.ReadKey();        }        else        {            Application.EnableVisualStyles();            Application.SetCompatibleTextRenderingDefault(false);            Application.Run(new someForm());        }    }}“喲!” 出現在新的控制臺窗口中,但我希望它出現在命令界面中
查看完整描述

1 回答

?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

除了您的代碼之外,您還需要更改以下內容:


1) 在項目設置頁面中將項目類型設置為Console Application。WinForms如果未提供命令行參數,您的“模式”將按預期運行。


2) 刪除對 的調用AllocConsole。


3) 如果您運行的是 WinForms 模式,請隱藏控制臺窗口。


這是完整的代碼:


[System.Runtime.InteropServices.DllImport("kernel32.dll")]

static extern IntPtr GetConsoleWindow();


[System.Runtime.InteropServices.DllImport("user32.dll")]

static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);


[STAThread]

static void Main(string [] args)

{

    if (args.Length > 0)

    {              

        Console.WriteLine("Yo!");

        Console.ReadKey();

    }

    else

    {

        ShowWindow(GetConsoleWindow(), 0);

        Application.EnableVisualStyles();

        Application.SetCompatibleTextRenderingDefault(false);

        Application.Run(new Form1());

    }                

}


查看完整回答
反對 回復 2023-09-16
  • 1 回答
  • 0 關注
  • 143 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號