In questo frammento di codice nel linguaggio C#, tramite l'utilizzo delle API di Windows, è possibile impostare il giorno o l'ora del sistema operativo Windows direttamente da codice.
Va ricordato che tale modifica potrebbe comportare instabilità del sistema operativo o dei vari software installati, procedere con attenzione ed impostare un'ora successiva o precedente a quella nel momento in cui si sta eseguendo il codice.
L'esecuzione avviene in modalità "Amministratore".
Inseriamo sopra ad ogni dichiarazione lo spazio dei nomi per l'utilizzo delle API di Windows. Di seguito si riporta il frammento di codice.
Spazio dei nomi.
C#
using System.Runtime.InteropServices;
Nella form, a livello di classe, la dichiarazione di API per la gestione della data ed ora del sistema operativo. Si riporta il frammento di codice delle suddette operazioni.
C#
[DllImport("kernel32.dll")]
static extern bool SetSystemTime(ref SYSTEMTIME lpSystemTime);
[StructLayout(LayoutKind.Sequential)]
public struct SYSTEMTIME
{
public short wYear;
public short wMonth;
public short wDayOfWeek;
public short wDay;
public short wHour;
public short wMinute;
public short wSecond;
public short
wMilliseconds;
}
Nell'evento click di un pulsante la chiamata alla funzione API, impostando la modifica dell'ora e del giorno.
C#
private void
BtnCambioOra_Click(object sender, EventArgs e)
{
// Imposta la nuova ora
SYSTEMTIME sistemaOra = new SYSTEMTIME();
sistemaOra.wYear = 2025; // Anno
sistemaOra.wMonth = 4; // Mese (1-12)
sistemaOra.wDay = 6; // Giorno (1-31)
sistemaOra.wHour = 18; // Ora (0-23)
sistemaOra.wMinute = 30; // Minuti (0-59)
sistemaOra.wSecond = 0; // Secondi (0-59)
// Modifica l'ora del sistema operativo
SetSystemTime(ref sistemaOra);
}
Nessun commento:
Posta un commento