Crear tareas programadas en C#

Muhammad Zeeshan 15 febrero 2024
Crear tareas programadas en C#

El siguiente artículo lo guiará en la programación de tareas usando el lenguaje de programación C#.

Programador de tareas C#

En el siguiente ejemplo, utilizaremos el Programador de tareas de Windows, un componente que ejecuta tareas automáticamente en momentos predefinidos o como reacción a eventos activados. Las tareas se pueden programar para ejecutarse en varios momentos, como cuando la computadora se inicia o cuando un usuario se registra.

El programador de tareas le permite configurar eventos que activarán el lanzamiento de tareas predefinidas y ejecutarán comandos y ejecutarán scripts en determinadas horas y fechas.

Agregue el paquete de referencia NuGet

Agregaremos el paquete TaskScheduler para las operaciones de programación de tareas de Windows. Para hacer eso, siga los pasos a continuación.

  • Abra Visual Studio, cree una Aplicación de consola y asígnele un nombre.
  • Haga clic derecho en el panel Explorador de soluciones y seleccione Administrar paquetes NuGet.
  • Ahora haga clic en la opción Examinar, busque TaskScheduler e instálelo.

    agregar referencia nuget

Después de agregar el paquete, importe las siguientes bibliotecas:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Win32.TaskScheduler;

Iniciaremos TaskService para iniciar el servicio de tareas de la máquina local.

using (TaskService ts = new TaskService()) {}

Ahora, cree una nueva definición de tarea como td y proporcione características como el autor o la descripción.

TaskDefinition td = ts.NewTask();
td.RegistrationInfo.Author = "Muhammad Zeeshan";
td.RegistrationInfo.Description = "Open Notepad++ for working";

Necesitamos asegurarnos de tener una acción configurada para que Notepad ++ se inicie una vez que se active el disparador.

td.Actions.Add(new ExecAction(@"C:\Program Files\Notepad++\notepad++.exe"));

Después de eso, debemos registrar el trabajo en la carpeta principal.

ts.RootFolder.RegisterTaskDefinition(@"My Scheduled Notepad++ Task", td).Run();

Por último, podemos insertar un intervalo del día que se muestra a continuación. Programe el trabajo para que comience cada dos días a esta hora configurando un disparador.

td.Triggers.Add(new DailyTrigger { DaysInterval = 1 });

Código fuente completo:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Win32.TaskScheduler;

namespace ScheduledTasksbyZeeshan {
  class Program {
    static void Main(string[] args) {
      using (TaskService ts = new TaskService()) {
        TaskDefinition td = ts.NewTask();
        td.RegistrationInfo.Author = "Muhammad Zeeshan";
        td.RegistrationInfo.Description = "Open Notepad++ for working";
        td.Actions.Add(new ExecAction(@"C:\Program Files\Notepad++\notepad++.exe"));
        ts.RootFolder.RegisterTaskDefinition(@"My Scheduled Notepad++ Task", td).Run();
      }
    }
  }
}

Producción:

salida del bloc de notas

administrador de tareas

Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

Artículo relacionado - Csharp Task