2011-07-26 11 views
4

사용자가 콘솔 응용 프로그램의 표면을 마우스 오른쪽 버튼으로 클릭하고 메뉴가 표시되는 텍스트를 선택할 수있게하려는 경우 사용자는 commandprompt에서와 동일한 기능을 선택할 수 있습니다 :선택 가능한 텍스트가있는 콘솔 응용

Mark 
Copy  (Shortcut: Enter) 
Paste 
Select All 
Scroll 
Find 

나는 것들 "C# 콘솔 응용 프로그램을 선택 텍스트"다른 종류의 같은 것들 후 Google에 시도했지만 사용자가 표시 할 수 있어야하기 때문에, 이에 대한 적절한 해결책을 찾을 수 없습니다 텍스트 복사/붙여 넣기를하지 않을 것입니다.

내 질문에 대한 해결책이 있습니까?

+0

정말 콘솔 앱이어야합니까? 그것은 당신의 필요에 대한 잘못된 선택처럼 들립니다. – Ian

+1

콘솔 창에 Alt + Space를 입력하십시오. 그런 다음 커서 키를 사용하여 탐색하십시오. 이봐, 콘솔 앱을 원했어. –

답변

12

가이 작업을 수행 할 관리 방법이 없지만, 빠른 편집 모드가 P/호출을 통해 활성화 할 수 있습니다. 빠른 편집 모드를 사용하면 콘솔 텍스트를 마우스로 선택하고 복사 할 수 있으며 텍스트를 오른쪽 마우스 단추로 붙여 넣을 수 있습니다. (빠른 편집 모드에 대한 설명은 this article을 참조하십시오.)

// using System.Runtime.InteropServices; 

[DllImport("kernel32.dll")] 
static extern bool SetConsoleMode(IntPtr hConsoleHandle, int mode); 

[DllImport("kernel32.dll")] 
static extern bool GetConsoleMode(IntPtr hConsoleHandle, out int mode); 

[DllImport("kernel32.dll")] 
static extern IntPtr GetStdHandle(int handle); 

const int STD_INPUT_HANDLE = -10; 
const int ENABLE_QUICK_EDIT_MODE = 0x40 | 0x80; 

public static void EnableQuickEditMode() 
{ 
    int mode; 
    IntPtr handle = GetStdHandle(STD_INPUT_HANDLE); 
    GetConsoleMode(handle, out mode); 
    mode |= ENABLE_QUICK_EDIT_MODE; 
    SetConsoleMode(handle, mode); 
} 
+0

+1 : 멋지다. 이제는 내 모든 콘솔 앱에서 할 수있다. :) – leppie

+0

이것은 정확히 내가 찾고있는 것입니다! – brimble2010

+0

'0x40 | 0x80' == 192.'0x40' (64) +'0x80' (128) = 192 왜 그 변수를 192로 설정하지 않습니까? 비트 연산자로 16 진수 값을 사용하는 이유는 무엇입니까? 위키 피 디아 (Wikipedia)에 따라 수정 편집 단순한 저비용 프로세서의 비트 연산은 일반적으로 나눗셈보다 훨씬 빠르며 곱셈보다 몇 배 빠르며 때로는 덧셈보다 훨씬 빠릅니다. 대답이 빠를 거라 생각합니다. 왜 번호를 설정할 수있을 때 추가할까요? –

1

어쩌면 나는 당신을 얻지 못했지만 콘솔 응용 프로그램을 실행할 때 명령 프롬프트 창에 호스트되어 원하는 텍스트를 끝까지 복사 할 수 있습니다.

0

콘솔 앱이나 명령 프롬프트에서 상황에 맞는 메뉴를 사용할 수 없습니다.

콘솔 앱은 기본 cmd.exe와 똑같이 작동합니다. 왼쪽 상단에있는 아이콘을 클릭하여 메뉴로 이동해야하며, 편집 메뉴는 나열한 옵션을 제공합니다.

속성으로 이동하여 빠른 편집을 사용하도록 설정할 수도 있습니다.

+0

표준 cmd에서는 상황에 맞는 메뉴를 볼 수 있지만 콘솔 앱을 실행할 때는 볼 수 없습니다. 그러나 편집 메뉴를 얻으려면 왼쪽 상단의 아이콘을 클릭하거나 크롬을 마우스 오른쪽 버튼으로 클릭하면됩니다. – SeeSharp

0

명령 프롬프트 응용 프로그램을 빌드하면 무료로 선택/복사/붙여 넣기 동작을 얻게됩니다. 마우스 오른쪽 버튼 클릭 메뉴 (상황에 맞는 메뉴)를 구현하려는 경우에는 할 수 있다고 생각하지 않습니다.

간단한에 어쩌면

그러나 당신이 구현할 수있는 simple switch based menu :

관련 문제