Foros del Web » Programación para mayores de 30 ;) » .NET »

Reloj en c#

Estas en el tema de Reloj en c# en el foro de .NET en Foros del Web. -------------------------------------------------------------------------------- Hola buenos dias, mi duda es la siguiente, tengo realizado en visual studio en c# un reloj que muestra la hora actual del sistema. ...
  #1 (permalink)  
Antiguo 01/11/2010, 16:34
 
Fecha de Ingreso: noviembre-2008
Mensajes: 75
Antigüedad: 15 años, 5 meses
Puntos: 0
Reloj en c#

--------------------------------------------------------------------------------
Hola buenos dias, mi duda es la siguiente, tengo realizado en visual studio en c# un reloj que muestra la hora actual del sistema. Pero lo que necesito hacer ahora es en otro formulario poder aumentar los minutos del reloj. Me gustaria que me dijerais como podria hacerlo. Saludos
  #2 (permalink)  
Antiguo 01/11/2010, 20:53
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Reloj en c#

Cuando dices aumentar, te refieres a que se cambie solo automaticamente o que le aumentes una cantidad de tiempo determinado por código?
__________________
http://geekswithblogs.net/jaullo/Default.aspx
Si te he ayudado regalame Karma positivo!!!
  #3 (permalink)  
Antiguo 02/11/2010, 03:11
 
Fecha de Ingreso: noviembre-2008
Mensajes: 75
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Reloj en c#

Hola, mi intención es poder ya sea con un textbox donde ponga los minutos a aumentar el reloj o bien con la herramienta numericUpDown por ejemplo, que se modifique el reloj. Saludos
  #4 (permalink)  
Antiguo 02/11/2010, 05:09
 
Fecha de Ingreso: marzo-2009
Mensajes: 52
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Reloj en c#

Tienes que usar la dll del sistema "coredll.dll" y el metodo "SetSystemTime" para actualizar la hora y "GetSystemTime" para cogerla.:

Código:
[DllImport("coredll.dll")]
private extern static void GetSystemTime(ref SYSTEMTIME lpSystemTime);

[DllImport("coredll.dll")]
private extern static uint SetSystemTime(ref SYSTEMTIME lpSystemTime);
Te creas una estuctura tal que asi:

Código:
private struct SYSTEMTIME 
{
    public ushort wYear;
    public ushort wMonth; 
    public ushort wDayOfWeek; 
    public ushort wDay; 
    public ushort wHour; 
    public ushort wMinute; 
    public ushort wSecond; 
    public ushort wMilliseconds; 
}
Y luego, suponiendo que en el textbox pones 30, para que cambie los minutos a y media, y un boton, para confirmar esto, cuando le des al boton, tendrias que hacer algo tal que asi:

Código:
SYSTEMTIME systime = new SYSTEMTIME();
GetSystemTime(ref systime);

//Ahora tendrias en tu systime la hora actual.

systime.wMinute = (ushort)(textBox.text);
//systime.wMinute = (ushort)(textBox.text.ToSting());
SetSystemTime(ref systime);
Y a correr.

Sacado de: http://msdn.microsoft.com/es-es/library/ms172517%28VS.80%29.aspx, buscando en google: "modificar hora del sistema con C#".

Por si no lees el enlace necesitas las siguientes referencias:

System
System.RunTime.InteropServices
System.Windows.Forms

Última edición por des_trozado; 02/11/2010 a las 05:14
  #5 (permalink)  
Antiguo 02/11/2010, 06:03
 
Fecha de Ingreso: noviembre-2008
Mensajes: 75
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Reloj en c#

Gracias des_trozado, pero no hay otra forma mas sencilla de hacerlo? Gracias
  #6 (permalink)  
Antiguo 02/11/2010, 06:38
 
Fecha de Ingreso: marzo-2009
Mensajes: 52
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Reloj en c#

A ver, lo dudo mucho, estas accediendo al reloj del sistema, vas a tener que usar una dll yo diria que seguro, pero bueno, no es dificil, si te fijas son 2 declaraciones, 1 struct y unas pocas lineas, si te haces una clase y metes eso, puedes hacerle unos metodos que te simplifiquen bastante la tarea, no se. Mas, no te se decir.

:)

Etiquetas: reloj
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:14.