如何仅在启动时运行功能?

时间:2013-10-31 09:57:50

标签: c# startup

我有一个用C#编写的桌面应用程序,我希望在启动时运行  此外还有一个功能,

    Index()

每次启动时应该只运行一次 我的意思是应该调用此函数,使其仅在应用程序在upstart启动时运行,而不是在用户手动启动应用程序时运行。我想知道,我怎么能这样做?尽管做了很多努力,但我还没有想到这个问题的富有成效的逻辑。我的桌面应用程序将在Windows 7上运行。

2 个答案:

答案 0 :(得分:3)

解决方案的一个可能的简单尝试是命令行参数,您可以附加您需要运行的“特殊”逻辑。当用户手动启动应用程序时,这个“魔术”参数将不存在,并且逻辑将不会发生。

在控制台应用程序中,您只需检查args方法的Main()参数。

要在Windows窗体应用程序的Main方法中启用命令行参数,必须手动修改program.cs中Main的签名。 Windows窗体设计器生成的代码创建一个没有输入参数的Main。您还可以使用Environment.CommandLine或Environment.GetCommandLineArgs从控制台或Windows应用程序中的任何位置访问命令行参数。

引自MSDN,其中包含许多信息。

答案 1 :(得分:1)

没有标准方法可以检查应用是否已在计算机启动时启动。一种可能的解决方案是传递命令行参数,如/startup,并在应用程序启动时检查此参数。