1

C#/ Visual Studio 2017を使用してコンソールアプリケーションを作成しました。コンソールアプリケーションをVSまたはWindows 10マシンから実行すると、完璧なコンソールアプリケーション(オプション/フォント/レイアウト/色)のデフォルト設定が使用されます。しかし、Windows Server 2012 R2を使用してテストサーバー上で実行しようとすると、ランダムな設定(小さなバッファサイズ/大きなフォント/奇妙なウィンドウ)が使用されます。私が試した:C#コンソールアプリケーションを既定のコンソール設定(Windows Server 2012)を使用するように設定する方法

  • は、ローカル上の同じデフォルトにサーバ(2012)のデフォルト設定(Windows 10/VS)
コマンドラインから実行するコンソールウィンドウ
  • プログラム設定機能

    コマンドライン(program.exe)からアプリケーションを実行すると、デフォルトの設定が使用されます。しかし、私が実行可能ファイルをクリックすると、それはしません。私はここで何が欠けていますか?

  • +0

    OSはコンソール設定をユーザーアカウントとアプリケーション名で記憶します。 Cmd.exeとyourapp.exeは同じではありません。これらの設定はRegedit.exe、HCKU/Consoleキーで確認できます。 Superuser.comはそれについて質問するのに良い場所です。 –

    +0

    恐ろしい!ユーザーとアプリケーションのコンソールウィンドウが別々の設定内にあることに気付かなかった。エントリを見つけ、アプリケーションのデフォルトを設定します。彼らは非常に異なっていた。ありがとうございました! – Gee

    +0

    これはアプリケーション名に基づくのではなく、最初のコンソールウィンドウのタイトルに基づいています。 'CreateProcess'を呼び出すときに' STARTUPINFO'でウィンドウタイトルを設定しないと(例えばCMDの 'start'コマンドを使うとき)、最初のウィンドウタイトルはアプリケーションパスです。また、コンソールアプリケーションが.lnkショートカットを介して起動された場合、設定はレジストリではなくショートカットからロードされ、ショートカットに保存されます。 – eryksun

    答えて

    1

    コンソールには2つの異なる設定があります。 1つはユーザーアカウント用で、もう1つは初期コンソールウィンドウタイトル(この場合は私のアプリケーション)です。私はRegedit.exe、HCKU/Consoleキー内の設定を見て、私の最初のコンソールウィンドウのタイトルの設定を削除してから、アプリケーションを(管理者として)実行し、そこでデフォルトを変更することができました。コメントありがとうございます!

    +0

    コンソール初期化は、最初にデフォルト設定( "HKCU \ Console")を適用します。ウィンドウタイトル設定( "HKCU \ Console \ [ウィンドウタイトル]")は、デフォルトを上書きします。レジストリを使用する代わりに、デフォルトおよびウィンドウタイトルの設定は、GUIの「デフォルト」ダイアログと「プロパティ」ダイアログでそれぞれ設定できます。 – eryksun

    +0

    .lnkショートカットを使用してアプリケーションを起動すると、.lnkファイルへのパスがウィンドウタイトルとして渡されます(つまり、 'STARTF_TITLEISLINKNAME'は' GetStartupInfo'の起動情報にフラグが立てられます)。コンソールAPIはウィンドウタイトル設定に.lnkファイルを使用し、プロパティダイアログはショートカットを変更します。 – eryksun

    関連する問題