이 작업은 콘솔 창에서 빠른 편집 모드를 사용하는 경우 발생합니다. 제목 표시 줄을 마우스 오른쪽 버튼으로 클릭하고 속성을 선택한 다음 옵션 탭을 선택하면 빠른 편집 모드가 활성화되어 있는지 확인할 수 있습니다. 빠른 편집 모드를 비활성화하면 창을 클릭해도 스크롤이 중지되지 않습니다.
스크롤을 중지하는 이유는 창에서 클릭 한 마우스를 사용하여 텍스트를 선택하기 때문입니다.
프로그램의 콘솔에서 빠른 편집 모드를 비활성화 할 수 있지만 이렇게하려면 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로 이동"과 같은 처리 작업의 로그를 의미합니다. –
"의사, 이럴 때 아파!" "그럼, 그러지 마!" –