これは、コンソールウィンドウでクイック編集モードが有効になっている場合に発生します。タイトルバーを右クリックして[プロパティ]を選択し、[オプション]タブを選択すると、クイック編集モードが有効になっているかどうかを確認できます。クイック編集モードを無効にすると、ウィンドウ内をクリックするとスクロールが停止しません。
スクロールが停止する理由は、ウィンドウ内でクリックされたマウスを使用してテキストを選択するためです。
プログラムのコンソールでクイック編集モードを無効にすることができますが、そうするにはGetConsoleModeとSetConsoleMode API関数を呼び出す必要があります。ここでは、あなたがそれを行うだろう方法は次のとおりです。あなたはこのルートを下る場合
[DllImport("kernel32.dll", SetLastError=true)]
public static extern IntPtr GetConsoleWindow();
[DllImport("kernel32.dll", SetLastError=true)]
public static extern bool GetConsoleMode(
IntPtr hConsoleHandle,
out int lpMode);
[DllImport("kernel32.dll", SetLastError=true)]
public static extern bool SetConsoleMode(
IntPtr hConsoleHandle,
int ioMode);
/// <summary>
/// This flag enables the user to use the mouse to select and edit text. To enable
/// this option, you must also set the ExtendedFlags flag.
/// </summary>
const int QuickEditMode = 64;
// ExtendedFlags must be combined with
// InsertMode and QuickEditMode when setting
/// <summary>
/// ExtendedFlags must be enabled in order to enable InsertMode or QuickEditMode.
/// </summary>
const int ExtendedFlags = 128;
void DisableQuickEdit()
{
IntPtr conHandle = GetConsoleWindow();
int mode;
if (!GetConsoleMode(conHandle, out mode))
{
// error getting the console mode. Exit.
return;
}
mode = mode & ~(QuickEditMode | ExtendedFlags);
if (!SetConsoleMode(conHandle, mode))
{
// error setting console mode.
}
}
void EnableQuickEdit()
{
IntPtr conHandle = GetConsoleWindow();
int mode;
if (!GetConsoleMode(conHandle, out mode))
{
// error getting the console mode. Exit.
return;
}
mode = mode | (QuickEditMode | ExtendedFlags);
if (!SetConsoleMode(conHandle, mode))
{
// error setting console mode.
}
}
、それはあなたのプログラムの起動時に、元のコンソールモードの設定を保存し、ときにプログラムが終了、それを復元するために、おそらく良いアイデアです。だから、起動時に:
GetConsoleMode(GetConsoleWindow(), ref saveConsoleMode);
と、あなたのプログラムが終了します。適切なエラー処理で
SetConsoleMode(GetConsoleWindow(), saveConsoleMode);
を、もちろん。 GetConsoleMode
の呼び出しに失敗した場合は、コンソールモードを復元したくないでしょう。
「ワークスペースアプリ」とは何ですか?出力はどのように見えますか?コードを出力するコードはどのように見えますか? – Sinatr
ワークスペースとは、コンソールウィンドウ、アプリ出力 - 「ファイルAをストレージBに移動...」のような処理操作のログを意味します。 –
「医者、これを行うと痛いです! 「まあ、やってはいけない!」 –