Debido a que desea realizar esto después de iniciar el sistema como un requisito, se puede usar la API del Programador de tareas de Windows. Puede invocar esto en C# agregando una referencia a la biblioteca COM Biblioteca de tipos de TaskScheduler 1.1. A continuación se muestra un ejemplo de código completo sobre la ejecución de Notepad.exe en el inicio de sesión.
Además, aquí es otro recurso: http://bartdesmet.net/blogs/bart/archive/2008/02/23/calling-the-task-scheduler-in-windows-vista-and-windows-server-2008-from-managed-code.aspx
que se podría llamar el comando del sistema DEL desde línea de comandos de Windows, potencialmente con este código.
namespace TaskSchedulerExample {
using System;
using TaskScheduler;
class Program {
static void Main(string[] args) {
var scheduler = new TaskSchedulerClass();
scheduler.Connect(null, null, null, null);
ITaskDefinition task = scheduler.NewTask(0);
task.RegistrationInfo.Author = "DCOM Productions";
task.RegistrationInfo.Description = "Demo";
ILogonTrigger trigger = (ILogonTrigger)task.Triggers.Create(_TASK_TRIGGER_TYPE2.TASK_TRIGGER_LOGON);
trigger.Id = "Logon Demo";
IExecAction action = (IExecAction)task.Actions.Create(_TASK_ACTION_TYPE.TASK_ACTION_EXEC);
action.Id = "Delete";
action.Path = "c:\\delete.exe"; // Or similar path
action.WorkingDirectory = "c:\\"; // Working path
action.Arguments = "c:\\killme.txt"; // Path to your file
ITaskFolder root = scheduler.GetFolder("\\");
IRegisteredTask regTask = root.RegisterTaskDefinition("Demo", task, (int)_TASK_CREATION.TASK_CREATE_OR_UPDATE, null, null, _TASK_LOGON_TYPE.TASK_LOGON_INTERACTIVE_TOKEN, "");
//Force run task
//IRunningTask runTask = regTask.Run(null);
}
}
}
Esto le da cierta flexibilidad. Podría ejecutar su propio delete.exe, o podría invocar la línea de comandos de Windows para ejecutar el comando DEL.
¿De qué función "MoveFile" estamos hablando aquí? –
@Jeff Mercado Hay una aplicación MS llamada "movefile.exe" que le permite marcar un archivo para eliminar al reiniciar – Jay
@Jeff: Creo que se está refiriendo a [MOVEFILE_DELAY_UNTIL_REBOOT] (http://msdn.microsoft.com/ es-us/library/aa365240 (v = vs.85) .aspx) – user7116