2011-07-26 12 views
4

コンソールアプリケーションの表面を右クリックしてメニューが表示されるテキストを(Commandpromptのように)選択できるようにしたい場合、ユーザーはcommandpromptと同じ機能を選択できます:選択可能なテキストのコンソールアプリケーション

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

、ユーザがマークすることができるはずなので、私は、「C#コンソールアプリケーションを選択し、テキスト」と物事の他の種類のようなものの後にGoogleに試みたが、このための適切な解決策を見つけるように見えることはできませんテキストをコピーまたは置き換えないでください(ペーストあり)。

私の質問に対する解決策はありますか?

+0

本当にコンソールアプリケーションでなければなりませんか?それはあなたのニーズに間違った選択のように聞こえます。 – Ian

+1

コンソールウィンドウでAlt +スペースを入力します。次に、カーソルキーを使用してナビゲートします。ねえ、あなたはコンソールアプリを望んでいた。 –

答えて

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進値を使用する理由は何ですか?単純な低コストのプロセッサでは、通常、ビット単位の演算は除算よりも大幅に高速で、乗算よりも数倍高速で、時には加算よりもかなり高速です。私は答えが速いので推測していますなぜあなたは番号を設定できるのですか? –

1

多分私はあなたに気づかなかったかもしれませんが、コンソールアプリケーションを実行するとコマンドプロンプトウィンドウにホストされます。

0

コンソールアプリケーションやコマンドプロンプトでコンテキストメニューを実行することはできません。

コンソールアプリケーションは、デフォルトのcmd.exeとまったく同じように動作します。左上のアイコンをクリックしてメニューに移動する必要があります。編集メニューでは、リストしたオプションが表示されます。

プロパティに移動してクイック編集を有効にすることもできます。

+0

標準のcmdではコンテキストメニューを取得できますが、コンソールアプリケーションを実行している場合は表示されません。しかし、編集メニューを表示するには、左上のアイコンをクリックする(またはクロムのいずれかを右クリックする)ことができます。 – SeeSharp

0

コマンドプロンプトアプリケーションをビルドすると、選択/コピー/貼り付けの動作が無料になります。右クリックメニュー(コンテキストメニュー)を実装したい場合、私はあなたができるとは思わない。シンプルに多分

いますが、simple switch based menuを実装できます。

関連する問題