PDA

View Full Version : [Java/C#]loggare accensione pc


RaouL_BennetH
13-02-2007, 16:42
Ciao a tutti :)

Avrei bisogno di capire come fare a realizzare una semplice cosa del genere:

Dopo aver acceso il pc e essersi caricato il sistema operativo (nel mio caso solo windows xp) vorrei fare in modo che l'orario di accensione venga memorizzato all'interno di un db.

Lavorando su un esempio che ho trovato in rete, sono arrivato a questo punto:


using System;
using System.Collections.Generic;
using System.Net;
using System.Text;


namespace TestAccensionePc
{
public static class UserLog
{
public static void WriteLog()
{
try
{
using (MySql.Data.MySqlClient.MySqlConnection cn = ConnClass.Create())
{

string utente = Environment.UserName.ToString();
DateTime dt = DateTime.Now;
string sistema = Environment.OSVersion.ToString();
string versione = Environment.Version.ToString();
string nomepc = Dns.GetHostName().ToString();
IPHostEntry iphostentry = Dns.GetHostEntry(nomepc);
foreach (IPAddress ip in iphostentry.AddressList)
{
string i = ip.ToString();
string login = "INSERT INTO userlog(utente, logtime, nomeos, versione, nomehost, ipaddress) " +
"VALUES('" + utente + "', '" + dt + "', '" + sistema + "', '" + versione + "', '" + nomepc + "', '" + ip + "')";
MySql.Data.MySqlClient.MySqlCommand writelog = new MySql.Data.MySqlClient.MySqlCommand(login, cn);
writelog.ExecuteNonQuery();
}
if (cn != null)
{
cn.Close();
cn.Dispose();
}
}
}
catch (Exception ex)
{
ex.Message.ToString();
}
}



}
}



Questa classe fa quello che mi occorre, solo che non ho ancora capito questa cosa:

Come faccio a farla eseguire all'avvio di windows senza creare un'applicazione windows o console?

Io ho lavorato su C# perchè al momento lo conosco un pochettino meglio di java. Ma se mi fate un esempio in java o mi indicate qualcosa va bene lo stesso.

Grazie mille come sempre.

RaouL.

franksisca
13-02-2007, 18:38
basta metterlo in esecuzione automatica, per il java il jar, in c# credo che faccia l'exe.

spero di non aver detto ca........e

RaouL_BennetH
13-02-2007, 19:39
basta metterlo in esecuzione automatica, per il java il jar, in c# credo che faccia l'exe.

spero di non aver detto ca........e

Infatti non ne hai dette :)

Il problema (almeno relativo al c#) è che per creare un exe devo necessariamente creare o un progetto console, o un progetto gui, mentre invece per lo scopo del programmino non dovrebbero servirmi ne la console ne la gui.

:help:

Einstein
14-02-2007, 08:57
L'accensione del PC è già loggata nell'event log (System Log, Source: EventLog, Event ID: 6009) e potresti anche ricavarla da lì.
Se non vuoi usare un'applicazione console, potresti creare un servizio Windows che esegue l'operazione di logging.

yorkeiser
14-02-2007, 09:47
Secondo me, la più sicura è farlo con un'applicazione console in esecuzione automatica. Se non vuoi far vedere la console a schermo, basta che ti crei un .bat e chiami il programma con:

start /min nomeprogramma

E.G. se hai un java fai

start /min java nomeclasse

RaouL_BennetH
14-02-2007, 10:05
Grazie ad entrambi per le risposte;

@ Einstein :

Quella del servizio sarebbe credo la via migliore, ma non sono ancora in grado di creare qualcosa che possa essere un servizio :( ho bisogno di studiare ancora parecchio da questo lato.


@ Yorkeiser :

La sicurezza non è fondamentale per me perchè sono solo delle semplici applicazioni di studio che eseguo e provo solo sul mio pc. Oppure dici che è meglio affrontare questo tema sin dai primi approcci anche a scopo puramente didattico?

Grazie e mi raccomando siate pazienti :ave:

Einstein
14-02-2007, 11:37
Se ti interessa dare un'occhiata alla creazione di un servizio, all'indirizzo:

http://www.dotnethell.it/articles/WindowsService.aspx

c'è un tutorial che ti può essere utile.
Ciao