0

对于某些 CAD 软件,我一直在制作一个清理程序 (WPF),它可以清理我不再需要的某些类型的临时文件和日志文件,但我的 cad 软件不会自行清理。

当我把它变成一个 WPF 应用程序时,我只是做了一个按钮来清理我不需要的任何文件类型。

现在我一直在寻找一个功能,让它在我登录到 Windows 后执行。所以我不会在启动后尝试执行完整的程序,只执行程序中的一个命令。我知道 Windows 中有一个名为 startup 的文件夹,但我不喜欢使用那个文件夹。是否有可能以不同的方式做到这一点?所以我可以在我的应用程序中创建一个复选框,我可以在其中设置是或否以使其在启动时运行?

我一直在环顾四周,但还没有真正找到任何关于此的信息。

4

3 回答 3

1

根据您的编辑;

在这篇文章中查看您的启动选项;如何设置程序在启动时启动

然后加上'所以我不尝试在启动后执行整个程序,只执行程序中的一个命令';利用启动参数。为您的应用程序提供命令行参数并在应用程序的Program.cs.

设置正确的参数后,只需清理文件而不显示界面即可。如果未设置参数(当用户只是双击图标时不会设置),则正常运行您的程序。

要使用命令行参数,只需向您的方法添加一个 string[] 参数,Main如下所示;

public static void Main(string[] args)
   {
       Console.WriteLine("Number of command line parameters = {0}",
          args.Length);
       foreach(string s in args)
       {
          Console.WriteLine(s);
       }
   }

您的完整(伪)代码如下所示:

public static void Main(string[] args)
   {
       if (args[0].Equals("/JUSTCLEANPLEASE"))
          JustClean();
       else
          Application.Run(new Form1());
   }
于 2013-05-31T12:37:00.873 回答
1

为什么不想使用自动启动目录?

有一些替代方案。请参阅此知识库文章: http: //support.microsoft.com/kb/137367/en-us 在链接中指定的这些节点之一中创建条目时,您可以控制是否要在每次启动时运行某些东西或仅一次(请参阅 RunOnce)。

简单的方法是在临时目录或不会被删除的地方创建一个批处理文件,并将其添加到适合您的自动运行节点之一。关于如何使用 C# 访问注册表的示例很多。编辑:或查看 Gerald Versluis 提供的链接 但是请记住,这些不同节点的 Run 和 RunOnce 存在差异

于 2013-05-31T12:37:23.943 回答
0

不确定您的程序是如何设置的,但我会将用户界面 (GUI) 从逻辑中分离出来。

您可以为逻辑创建服务,WPF 用户界面将单独调用此服务。

然后,您可以编写一些代码来调用服务,而无需使用 GUI。

查看 MSConfig.exe 以更好地控制启动和服务等。

于 2013-05-31T12:42:02.380 回答