Dudas con mi agenda!! c#.

Iniciado por Hartigan, 26 Agosto 2010, 14:16 PM

0 Miembros y 1 Visitante están viendo este tema.

Hartigan

Cita de: [D4N93R] en 26 Agosto 2010, 21:20 PM
Bueno primero termina la aplicación :) y luego si te da tiempo o no haces el servicio..

:P

jejejeje, ya tio, pero esque algo tengo que hacer con las alarmas, porque el pryecto tengo que entregarlo con alarmas... sino... asíque seguramente lo haga con timers y listo, si luego me sobra tiempo me meto en el tema de los servicios...

Saludos ;)

KuraraGNU

Yo creo que con servicio o no sigue teniendo el mismo problema, no sabe cual es el desencadenante que va a rastrear el programa en busca de las alarmas, que me he puesto a pensar y yo tampoco sabría que decirle ¿me explico? tiene el reloj, tiene las alarmas, pero no sabe qué hacer para que se vayan comprobando las alarmas para que salten. ¿Es ese tu problema? Que no te de vergüenza parecer inexperto, que peor soy yo segurísimo XD

Hartigan

Cita de: KuraraGNU en 26 Agosto 2010, 21:33 PM
Yo creo que con servicio o no sigue teniendo el mismo problema, no sabe cual es el desencadenante que va a rastrear el programa en busca de las alarmas, que me he puesto a pensar y yo tampoco sabría que decirle ¿me explico? tiene el reloj, tiene las alarmas, pero no sabe qué hacer para que se vayan comprobando las alarmas para que salten. ¿Es ese tu problema? Que no te de vergüenza parecer inexperto, que peor soy yo segurísimo XD

ajajaja, no me da verguenza, si además ya he dicho en alguna ocasión que estoy empezando en esto de .net y es mi primera aplicación asíque soy bastante novato jejeej.

Efectivamente ese es mi problema, que no se que hacer o como hacer para que se vayan comprobando las alarmas con el reloj del ordenador para que salten.... porque como compruebo continuamente la fecha y la hora de cada alarma???, la fecha con una vez valdría, si esa es la fecha ya solo tendría que comprobar hasta que se cumpla la hora pero como lo hago???

Gracias compi ;)

[D4N93R]

Pues, se me ocurre que tengas una especie de base de datos, puede ser Sql Server, My Sql, un XML, un texto plano, lo que sea, y guardes las alarmas ahí en caso de que cierres la aplicación.

Y cuando esté corriendo, puedes tener un Thread corriendo cada segundo o algo así que verifique las alarmas que tengas con la fecha actual. Creo que eso es todo lo que debes hacer...

Saludos!

43H4FH44H45H4CH49H56H45H

Cita de: Hartigan en 27 Agosto 2010, 02:06 AM
Efectivamente ese es mi problema, que no se que hacer o como hacer para que se vayan comprobando las alarmas con el reloj del ordenador para que salten.... porque como compruebo continuamente la fecha y la hora de cada alarma???, la fecha con una vez valdría, si esa es la fecha ya solo tendría que comprobar hasta que se cumpla la hora pero como lo hago???

Solo necesitas un timer:
Código (csharp) [Seleccionar]
private void timer1_Tick(object sender, EventArgs e)
        {
            if (DateTime.Now.DayOfYear == 239 && DateTime.Now.Hour == numericUpDown1.Value && DateTime.Now.Minute == numericUpDown2.Value && DateTime.Now.Second == 00) MessageBox.Show("Alarma");           
        }


Los numericUpDown.Value Serian las variables de Hora y minuto, se comprueba el segundo para que el mensaje salga una sola vez.

Para almacenar las variables, ya sea en una BD u otro, recuerda utilizar las variables de entorno por si el usuario no tiene permisos de administrador.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

Hartigan

Hola de nuevo. os comento la situación.

He encontrado una web donde mediante una dll de codeproject puedo crear las tareas facilmente, el problema es que lo he probado y no me funciona. Alguien podría probarlo y decirme si le funciona????  Se tarda menos de 5 minutos en hacerlo asíque os lo agradecería mucho, porque he probado de todo y no hay manera.


La web: http://escarbandocodigo.wordpress.com/2009/10/21/crear-tareas-programadas-desde-c/   (Aquí os dice de donde podeis descargar la dll).

mi código:

Código (csharp) [Seleccionar]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TaskScheduler;
using System.Security.Principal;

namespace ConsoleApplication1
{
   class Program
   {
       static void Main(string[] args)
       {
           using (ScheduledTasks Tareas = new ScheduledTasks())
           {
               //Tareas.DeleteTask("Prueb");
               Task tarea = Tareas.CreateTask("Prueba6");
               tarea.ApplicationName = @"C\Users\Litos\Desktop\pepito.xls";
               tarea.Priority = System.Diagnostics.ProcessPriorityClass.High;
               tarea.SetAccountInformation(WindowsIdentity.GetCurrent().Name, "password");
               tarea.Triggers.Add(new DailyTrigger(17, 50));
               tarea.Save();
               
           }

           
       }
   }
}


Salu2 y gracias de antemano.

[D4N93R]

Eso te hace todo, cual es la gracia entonces xD

Hartigan

Cita de: [D4N93R] en  6 Septiembre 2010, 18:04 PM
Eso te hace todo, cual es la gracia entonces xD

Jajajaja pues que necesitaba algo así para programar mis alarmas porque no he sido capaz de hacerlo manualmente. De todos modos como digo no he conseguido que me funcione, las tareas no arrancan y no se porqué!!!! xDD



[D4N93R]

Lo mejor es que lo hagas tú a mano, usa una base de datos, y cuando la aplicación arranque cargas todo en memoria, y chequeas cada cierto tiempo comparado con los valores y si ya se ejecutó esa alarma.

Un saludo.

Hartigan

Cita de: [D4N93R] en  6 Septiembre 2010, 18:24 PM
Lo mejor es que lo hagas tú a mano, usa una base de datos, y cuando la aplicación arranque cargas todo en memoria, y chequeas cada cierto tiempo comparado con los valores y si ya se ejecutó esa alarma.

Un saludo.

sí, sería lo suyo pero el problema es la falta de tiempo....