拖放控制台应用程序的事件处理程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拖放控制台应用程序的事件处理程序相关的知识,希望对你有一定的参考价值。

这个问题不是关于如何通过将文件拖放到exe上然后访问文件路径作为参数来打开控制台应用程序。

相反,这是用于处理文件在已打开的控制台窗口上的拖放。如果您在等待Console.ReadLine()上的输入时已经完成此操作,您将知道它会将拖放/删除的文件路径输入控制台窗口,以便您可以访问它。问题是它想要用双引号包装路径,这会导致IO命名空间中的许多方法出现问题。

如果我可以创建一个处理程序来在它写入之前拦截路径,我可以在返回字符串之前清除单个位置的引号。有什么办法吗?

答案

控制台模式应用程序中没有拖放支持。这只是因为conhost.exe实现它,即拥有控制台窗口的进程。你不能搞砸它做什么,不同的过程。 Fwiw,也是需要将conhost.exe添加到Win7的原因,有必要允许从资源管理器拖动到以UAC提升运行的控制台应用程序。通常不允许。

添加双引号是因为这意味着使命令处理器更易于使用。它需要这些双引号来正确处理带有嵌入空格的路径。编写代码来处理它们应该是直截了当的,String.Replace()可以完成工作。双引号在路径字符串中永远不会有效,因此您甚至不必检查它们是否出现在开头和结尾。

以上是关于拖放控制台应用程序的事件处理程序的主要内容,如果未能解决你的问题,请参考以下文章

17.QT-事件处理分析事件过滤器拖放事件

QT学习之事件处理

html5文件拖放事件混淆

在mouseup事件处理程序中取消单击事件

无法在 React 上为 HTML5 拖放获取 onDragStart 事件

Angular2拖放目标