【问题标题】:How to find out whether my .Net application was launched using a shortcut?如何确定我的 .Net 应用程序是否使用快捷方式启动?
【发布时间】:2009-01-09 19:28:41
【问题描述】:

是否可以查明您当前的 .Net 应用程序是否已使用快捷方式或 Clickonce 应用程序参考 (*.appref-ms) 文件启动?如果有,怎么做?

一些背景知识:我在使用 Microsoft Clickonce 时遇到了一个问题,我无法将命令行参数传递给应用程序。这似乎是该技术按设计工作的方式。我正在探索传递此参数的不同方法;其中之一是拥有一组不同的 Clickonce 开始菜单快捷方式。

【问题讨论】:

  • 什么是应用参考文件?
  • 已修复以更清楚地说明我在说什么。
  • 您能否阐明您尝试使用 ClickOnce 参数解决的问题?也许我们可以为您提供另一种解决方案的想法。

标签: c# .net clickonce


【解决方案1】:

尝试测试ApplicationDeployment.IsNetworkDeployed 属性。我知道如果它是 ClickOnce 应用程序,这将是正确的,但我不确定在您的情况下它是否会是错误的。

【讨论】:

  • 在所有情况下都是如此,因为我确实希望 clickonce 启动应用程序。
  • 认为它可能是......你想用 ClickOnce 应用程序的参数解决什么问题?
【解决方案2】:

我不确定什么是“应用程序参考文件”;你的意思是像在资源管理器中双击EXE文件还是从命令行运行文件?

没有任何先验方法可以检测您的程序是如何启动的。通常的解决方法是配置快捷方式文件以在命令行上传递参数。然后,在运行时检查该参数是否存在。如果您在那里找到它,则假设该程序是从快捷方式启动的。这种方法的关键在于,在资源管理器中双击 EXE 文件时不能包含参数,因此如果找到命令行参数,就知道程序不是以这种方式启动的。

【讨论】:

  • 虽然这听起来像是一个合理的解决方法,但它并没有考虑到您可以快捷方式到应用程序的多种方式。开始菜单、桌面快捷方式、快速启动、最近使用的列表,当然还有通过双击要“打开方式”的文档打开应用程序。
  • 这很简单。为每个快捷方式或文件关联配置不同的命令行参数。
猜你喜欢
  • 1970-01-01
  • 2020-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-14
  • 2014-09-06
  • 1970-01-01
相关资源
最近更新 更多