用户登录windows后执行命令
本文关键字:执行 命令 windows 登录 用户 | 更新日期: 2023-09-27 18:16:10
对于一些CAD软件,我一直在制作一个清理程序(WPF),它可以清理我不再需要的某些类型的临时文件和日志文件,但我的CAD软件不会自己清理。
当我把它变成一个WPF应用程序时,我只是做了一个按钮来清理我不需要的任何文件类型。
现在我一直在寻找一个函数,使其执行后,我已经登录到窗口。所以我不尝试在启动后执行完整的程序,只执行程序中的一个命令。我知道在windows中有一个名为startup的文件夹,但我不想用这个。有没有可能用另一种方式来做这件事?所以我可以在我的应用程序中做一个复选框,在那里我可以设置是或否,使它在启动时运行?
我已经到处找了,但还没有找到任何关于这个的。
根据您的编辑;
在这篇文章中查看你的启动选项;如何设置程序在启动时启动
然后加上'所以我在启动后不尝试执行整个程序,只执行程序中的一个命令';利用启动参数。为应用程序提供一个命令行参数,并在应用程序的Program.cs
中检查它。
当设置正确的参数时,只需清理文件,不显示界面。当参数未设置时(当用户双击图标时不会设置),像正常运行程序一样运行程序。
要使用命令行参数,只需在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());
}
为什么不使用自动启动目录?
有一些替代方案。请参考这篇知识库文章:http://support.microsoft.com/kb/137367/en-us当您在链接中指定的其中一个节点中创建条目时,您可以控制是否要在每次启动时运行某些内容还是只运行一次(参见RunOnce)。
简单的方法是在临时目录或不会被删除的地方创建一个批处理文件,并将其添加到一个自动运行节点中,这是适合您的。关于如何使用c#访问注册表的示例有很多。编辑:或者查看Gerald Versluis提供的链接但是请记住,这些不同节点的Run和RunOnce是不同的
不确定您的程序是如何设置的,但我会将用户界面(GUI)从逻辑中分离出来。
您可以为逻辑创建一个服务,WPF用户界面将单独调用该服务。
然后您可以编写一小段代码来调用服务,而不必使用GUI。
查看MSConfig.exe以更好地控制启动和服务等