0

我有一个简单的 GUI 应用程序,它需要在启动时执行某些功能,但不需要从桌面或开始菜单手动启动。为了合并这个功能,我想到了向应用程序提供命令行参数,以便根据命令行参数,我们可以区分启动时启动和手动启动。
我的问题是,我如何确保每当用户单击桌面上的应用程序图标时,都会向程序提供所需的命令行参数。
我正在使用 C# 来编写我的应用程序并希望在 Windows 7 上运行它

4

1 回答 1

2

可以在启动时(即自动)或手动(即,当用户启动应用程序时)启动的 Windows 应用程序的常见设计模式是在应用程序启动时传递命令行参数,而不是在用户启动时传递命令行参数。手动启动它。为什么?因为您控制了应用程序自动启动的机制(例如,因为您在 中创建了注册表项HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run)。因此,例如,您可以添加值"c:\program files\MyCompany\MyApp.exe" /StartupAnd 然后您可以检查startup代码中的参数:

bool isStartupLaunch;
foreach (string arg in args)
   isStartupLaunch |= (arg.toLower() == "/startup");

相比之下,您永远无法真正控制用户将如何启动您的应用程序。也许他们双击快捷方式,但也许他们双击您的实际可执行文件,或者他们打开命令提示符并以这种方式启动。因此,当用户启动您的应用程序时,您不想依赖获取特定的命令行参数。寻找自动启动要安全得多,因为您可以控制它是如何完成的,因此可以控制传入的命令行参数。

于 2013-11-02T05:27:07.220 回答