对于某些CAD软件,我一直在制作清理程序(WPF),它可以清除我不再需要的某些类型的临时文件和日志文件,但是我的cad软件本身并没有清理。
当我进入WPF应用程序时,我只是制作了一个按钮来清理我不需要的任何文件类型。
现在我一直在寻找一个让我在登录Windows后执行的功能。所以我不会尝试在启动后执行完整的程序,只是程序中的一个命令。我知道在Windows中有一个名为startup的文件夹,但我不想使用那个。 是否有可能以不同的方式做到这一点?所以我可以在我的应用程序中创建一个复选框,我可以设置是或否使其在启动时运行?
我一直在四处寻找,但还没有真正发现这一点。
答案 0 :(得分:1)
根据你的编辑;
在这篇文章中查看你的启动选项; How do I set a program to launch at startup
然后添加'所以我不会尝试在启动后执行完整程序,只有程序中的一个命令';利用启动参数。
使用命令行参数为应用程序提供,并在应用程序的Program.cs
中进行检查。
设置正确的参数后,只需清理文件,不要显示界面。 如果未设置参数(当用户只需双击图标时就不会出现这种情况)正常运行您的程序。
要使用command-line arguments,只需在Main
方法中添加string []参数,就像这样;
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());
}
答案 1 :(得分:1)
为什么不想使用自动启动目录?
有一些替代方案。请参阅此知识库文章: http://support.microsoft.com/kb/137367/en-us 当您在链接中指定的其中一个节点中创建条目时,您可以控制是否要在每次启动时运行某些内容或仅运行一次(请参阅RunOnce)。
简单的方法是在临时目录中创建批处理文件,或者在不删除它的地方创建批处理文件,并将其添加到适合您的其中一个自动运行节点。 有关如何使用C#访问注册表的示例很多。 编辑:或者看看Gerald Versluis提供的链接 但请记住,这些不同节点的Run和RunOnce存在差异
答案 2 :(得分:0)
不确定您的程序是如何设置的,但我会从逻辑中拆分用户界面(GUI)。
您可以为逻辑创建服务,WPF用户界面将单独调用此服务。
然后,您可以编写一些代码来调用服务,而无需使用GUI。
查看MSConfig.exe以更好地控制启动和服务等。