fnk*_*nky 4 c# console-application
我希望用户能够选择文本(就像在Commandprompt中一样),右键单击控制台应用程序的表面,然后会显示一个菜单,用户可以选择与commandprompt相同的功能:
Mark
Copy (Shortcut: Enter)
Paste
Select All
Scroll
Find
Run Code Online (Sandbox Code Playgroud)
我曾尝试使用"C#控制台应用程序选择文本"之类的东西和其他类似的东西,但似乎无法找到适当的解决方案,因为用户应该能够标记他/她不想要的文本复制或替换(使用粘贴).
你有我的问题的解决方案吗?
drf*_*drf 12
没有托管方法可以执行此操作,但可以通过P/Invoke启用快速编辑模式.快速编辑模式允许使用鼠标选择控制台文本并进行复制,并使用右侧moue按钮粘贴文本.(有关快速编辑模式的说明,请参阅此文章.)
// 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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5198 次 |
| 最近记录: |