Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 禁用粘贴控制台应用程序_C#_Command Line_Console Application_Copy Paste - Fatal编程技术网

C# 禁用粘贴控制台应用程序

C# 禁用粘贴控制台应用程序,c#,command-line,console-application,copy-paste,C#,Command Line,Console Application,Copy Paste,所以,这里有一个奇怪的问题:我有没有办法禁用当按下控制台左上角的“C:\”按钮时得到的菜单 我正在做一个游戏,只是为了好玩,但若玩家能够将单词粘贴到命令行中,那个么它会带走很多乐趣 我还没有找到任何关于它的话题,所以我想知道是否有人对如何做到这一点有想法,或者至少有一个解决办法 提前谢谢 编辑:任何字符的简单注册表是否有效?或者控制台不使用^C和^V?我不确定控制台是否支持通过键盘组合进行粘贴,您可以通过菜单或在控制台中单击鼠标右键进行粘贴(这取决于控制台的设置方式) 我建议一个更好的解决方案是

所以,这里有一个奇怪的问题:我有没有办法禁用当按下控制台左上角的“C:\”按钮时得到的菜单

我正在做一个游戏,只是为了好玩,但若玩家能够将单词粘贴到命令行中,那个么它会带走很多乐趣

我还没有找到任何关于它的话题,所以我想知道是否有人对如何做到这一点有想法,或者至少有一个解决办法

提前谢谢


编辑:任何字符的简单注册表是否有效?或者控制台不使用^C和^V?

我不确定控制台是否支持通过键盘组合进行粘贴,您可以通过菜单或在控制台中单击鼠标右键进行粘贴(这取决于控制台的设置方式)

我建议一个更好的解决方案是创建一个winforms应用程序,而不是在控制台应用程序中控制输入/输出

否则,一种解决方法可能是调用剪贴板。每隔100毫秒左右清除一次,以确保他们在清除之前没有时间复制和粘贴任何内容,但是,如果用户在后台运行您的应用程序,并试图在其他软件中执行某些工作,这当然会让用户感到不安和/或困惑;使用子类化和挂钩过滤鼠标和键盘事件。尽管由于Windows控制台的具体实现,这种方法可能有很多隐藏的障碍

b) 使用时间分析。测量击键之间的时间间隔,如果此间隔不合理地短,则忽略输入。您可能需要进行实验,以找到最有效的标准。也许最好测量entrie单词的输入持续时间,而不是字符间隔


请注意,将文本粘贴到Windows控制台是通过键盘输入模拟实现的,即,当您将某个内容粘贴到控制台时,控制台应用程序会观察到一系列按键按下/按下事件。

这听起来是个好主意,尽管我对整个控制台应用程序有点陌生。所以我认为目前对我来说有点困难,但我会在稍后尝试进行时间分析。谢谢你别忘了你也可以使用以下快捷键粘贴(在英文版Windows上):Alt+Space,E,P.@0xA3-你说得对。即,如果使用钩子方法,则必须过滤键盘事件和鼠标事件。我会修改答案的,谢谢!