【问题标题】:Drag text over C# application icon to launch app将文本拖到 C# 应用程序图标上以启动应用程序
【发布时间】:2013-12-16 15:32:15
【问题描述】:

我有一个 C#、Windows 7、窗体应用程序,它与剪贴板一起使用来检索文本,然后相应地处理它。我想修改应用程序以允许用户突出显示来自任何来源(单词、电子邮件等)的文本并将该文本拖到我的应用程序图标上以启动程序。

我可以让命令行参数像这样工作:

static void Main(string[] args)
  {
    if (args != null)
    {
      for (int i = 0; i < args.Length; i++){
         varItemNumber = args[i];
      }
    }//...

但是当文本放在桌面上时,应用程序不会在桌面上启动。

找到与控制台应用程序相关的类似question

有没有办法让对象被拖放到应用程序图标上?

【问题讨论】:

  • 嗯,这只是一个想法,而不是解决方案,但是如果您已经运行了某种存根,您也许可以连接到操作系统并监控 Windows 中的拖放操作。然后,您可以检测到您的应用程序图标上方发生的事件。

标签: c# drag-and-drop


【解决方案1】:

根据this question,你正在做的事情应该有效。有些人在Main 函数上推荐这个属性:

 [STAThread]

但其他人抱怨 UAC 问题阻碍了他们这样做。所以(UAC)可能是问题的一部分。

另一个想法:对于快捷方式与实际将应用程序安装到桌面上,您会得到不同的结果吗?

最后:根据this,你需要的是一个Shell Drop Handler。

【讨论】:

  • 谢谢,我也看过那个帖子,但它没有帮助,因为应用程序没有在 drop 事件中启动。所以它永远不会到达那行代码。
  • 我已经尝试过有和没有[STAThread] 以及你使用快捷方式的想法......没有运气。好主意
  • 我添加了一个最终建议:一个 shell drop 处理程序——它可能在 C# 中实现,也可能不实现。 :(
猜你喜欢
  • 1970-01-01
  • 2011-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-24
  • 2017-04-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多