Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

Pedro Balreira

[Resolvido] Abrir novo Form

Mensagens Recomendadas

Pedro Balreira    0
Pedro Balreira

Boa tarde

Estou a fazer um programa onde tenho de criar um form para tarefas. E estou a programar para que guarde diretamente no programador de tarefas do windows.

O meu problema agora é que não consigo abrir este form "Tarefas" a partir no form "Inicial" e vice-versa. Simplesmente não me aparecem os nomes dos forms.

Penso que seja pelo facto de o namespace do form "Tarefas" ser TaskScheduler enquanto que nos restantes é AgendarTarefa.

Desde já agradeço a quem me conseguir ajudar.

Deixo o código abaixo:

using System;
using System.Windows.Forms;

namespace TaskScheduler
{
public partial class frmAgendarTarefa : Form
{
public frmAgendarTarefa()
{
InitializeComponent();
}
TaskScheduler oAgendador;
//Para tratar a definição da tarefa
ITaskDefinition oDefinicaoTarefa;
//Para tratar a informação do Trigger
ITimeTrigger oTrigger;
//Para tratar a informação da Ação
IExecAction oAcao;


private void btnCriarTarefa_Click(object sender, EventArgs e)
{
try
{
oAgendador = new TaskScheduler();
oAgendador.Connect();

//Atribuindo Definição de tarefa
AtribuiDefinicaoTarefa();
//Definindo a informação do gatilho da tarefa
DefineInformacaoGatilho();
//Definindo a informção da ação da tarefa
DefineInformacaoAcao();

//Obtendo a pasta raiz
ITaskFolder root = oAgendador.GetFolder("\\");
//Registrando a tarefa , se a tarefa ja estiver registrada então ela será atualizada
IRegisteredTask regTask = root.RegisterTaskDefinition("_Macoratti_Tarefa", oDefinicaoTarefa, (int)_TASK_CREATION.TASK_CREATE_OR_UPDATE, null, null, _TASK_LOGON_TYPE.TASK_LOGON_INTERACTIVE_TOKEN, "");

//Para executar a tarefa imediatamenteo chamamos o método Run()
//IRunningTask runtask = regTask.Run(null);
//exibe mensagem
MessageBox.Show("Tarefa foi criada com sucesso","Criar Tarefa",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
catch (Exception ex )
{
//exibe erros
MessageBox.Show(ex.Message);
}
}

//Atribuição da da Definição da tarefa
private void AtribuiDefinicaoTarefa()
{
try
{
oDefinicaoTarefa = oAgendador.NewTask(0);
//Registra informação para a tarefa
//nome do autor da tarefa
oDefinicaoTarefa.RegistrationInfo.Author = "Macoratti";
//descrição da tarefa
oDefinicaoTarefa.RegistrationInfo.Description = "_Macoratti_Tarefa";
//Registro da data da tarefa
oDefinicaoTarefa.RegistrationInfo.Date = DateTime.Today.ToString("yyyy-MM-ddTHH:mm:ss"); //formatacao

//Definição da tarefa
//Prioridade da Thread
oDefinicaoTarefa.Settings.Priority = 7;
//Habilita a tarefa
oDefinicaoTarefa.Settings.Enabled =true ;
//Para ocultar/exibir a tarefa
oDefinicaoTarefa.Settings.Hidden = false;
//Tempo de execução limite para a tarefa
oDefinicaoTarefa.Settings.ExecutionTimeLimit = "PT10M"; //10 minutos
//Define que não precisa de conexão de rede
oDefinicaoTarefa.Settings.RunOnlyIfNetworkAvailable = false ;

}
catch (Exception ex)
{
throw ex;
}
}

//Definindo a informação do Gatilho (Trigger)
private void DefineInformacaoGatilho()
{
try
{
//informação do gatilho baseada no tempo - TASK_TRIGGER_TIME
oTrigger = (ITimeTrigger)oDefinicaoTarefa.Triggers.Create(_TASK_TRIGGER_TYPE2.TASK_TRIGGER_TIME);
//ID do Trigger
oTrigger.Id = "Trigger_Da_Tarefa";
//hora de inicio
oTrigger.StartBoundary = "2016-03-31T16:54:00"; //yyyy-MM-ddTHH:mm:ss
//hora de encerramento
oTrigger.EndBoundary = "2016-03-31T16:54:01"; //yyyy-MM-ddTHH:mm:ss
}
catch (Exception ex)
{
throw ex;
}
}

//Define a informação da Ação da tarefa
private void DefineInformacaoAcao()
{
try
{
//Informação da Ação baseada no exe- TASK_ACTION_EXEC
oAcao = (IExecAction)oDefinicaoTarefa.Actions.Create(_TASK_ACTION_TYPE.TASK_ACTION_EXEC);
//ID da Ação
oAcao.Id = "testeAcao1";
//Define o caminho do arquivo EXE a executar (Vamos abrir o Paint)
oAcao.Path = @"C:\Users\Balreira\Desktop\Organizer - Cópia\Organizer\Organizer\bin\Debug\Organizer";
}
catch (Exception ex)
{
throw ex;
}
}

private void btnDeletar_Click(object sender, EventArgs e)
{
try
{
//cria instância do agendador
TaskScheduler oAgendador = new TaskScheduler();
oAgendador.Connect();

ITaskFolder containingFolder = oAgendador.GetFolder("\\");
//Deleta a tarefa
containingFolder.DeleteTask("_Macoratti_Tarefa", 0); //da o nome da tarefa que foi criada
MessageBox.Show("Tarefa Deletada...");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message,"Deletar Tarefa",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
}
}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.