Newsgroup: it.comp.programmare.win32
Titolo: Log dei programmi eseguiti

Come posso realizzare un programma in VC++5.0 che mi memorizzi su un
file di log, tutti i  programmi che vengono eseguiti sul PC nel corso
della giornata?
Vorrei monitorare sia l'ora di inizio sia l'ora della fine.
In pratica vorrei mettere in esecuzione automatica un mio programmino
win32 GUI che tenga sott'occhio cio' che l'utente esegue in windows.
E quindi come si fa ad essere informati che un altro programma e'
stato avviato, oppure terminato?
PS: Se esiste gia' qualcosa di commerciale o freeware ditemelo, che
faccio prima :-)
grazie, ciao
donCiccio

 stato avviato, oppure terminato?
Non esistono - che io sappia - sistemi semplici per intercettare l'avvio o
la terminazione di un processo. A tua scelta puoi:
1) installare un hook (di tipo WH_SHELL o WH_CBT), ma intercetterai solo i
processi che creano una finestra.
2) installare un timer e controllare periodicamente la lista dei processi, a
vedere cosa si è aggiunto e cosa è stato terminato.
Non mi vengono in mente altri modi.
Saluti
Zello

 win32 GUI che tenga sott'occhio cio' che l'utente esegue in windows.
E' illegale farlo se sei in un ambiente lavorativo... lo sai?
-- 
Luc.

"Luc" <XXX...@katamail.comXXX> ha scritto nel messaggio
news:MPG.160147be2...@news.enter.it...

No, non lo sapevo.
Ora che lo so, vedro' di usarlo in modo discreto... :-)
ciao
donCiccio

 vedere cosa si è aggiunto e cosa è stato terminato.
Anche questa puo' andar bene.
Come ottengo la lista dei processi running? (cioe' quali API)
grazie dell'aiuto
ciao
donCiccio

 Ora che lo so, vedro' di usarlo in modo discreto... :-)
Stai scherzando, vero?
-- 
Luc.

 ha scritto nel messaggio
news:9n5q63$nu6$1...@nreadb.inwind.it...

Se vai nel registry sotto "HKEY_CLASSES_ROOT\exefile\shell\open\command"
trovi una cosa tipo "%1" al posto di questo mettici "c:\pippo\pippo.exe %1"
Ora ogni volta che lanci un'eseguibile, invece che lanciare quello che hai
chiesto, parte il tuo programma (pippo...) e come argomento nel main trovi
il programma da lanciare realmente (puoi farlo partire con
ShellExecute)...non sò se sono riuscito a spiegarmi, ma fai una prova e
dimmi se ci 6 riuscito..


ho provato ed e' molto, ma molto, ma molto interessante!!!
e per essere chiamati anche sull'apertura dei documenti?
cioe' per esempio doppio click su file.txt che apre NotePad?
cmq e' gia un bell'aiuto! sono contento :-)
grazie, ciao
donCiccio


Non capisco perche' ti scandalizzi tanto.
Il programma mi serve per sapere cosa potrebbe aver combinato
l'utilizzatore del PC, quando vengo chiamato per fare assistenza sui
malfunzionamenti dei nostri programmi (nostri come azienda per cui
lavoro) o dell'intero PC/OS, perche' quando chiedi agli operatori cosa
e' successo, sono sempre tutti dei santi!
Se spiare cosa hanno eseguito e' illegale, vuol dire che dopo aver letto
i log, e capito perche' e' successo il guaio, a loro non diro' niente
:-), ma almeno avro' una risposta certa al "cosa e' successo?".
ciao
donCiccio


wrote:

E se loro se ne accorgono ti denunciano.
-- 
Marco Barisione (ICQ 84277092)

 l'utilizzatore del PC
Gli DEVI far sapere che tutto sarà loggato e gli DEVI dare la possibilità di 
disattivare questa funzionalità. Ogni altra cosa te la vedi in tribunale.
-- 
Luc.

E' illegale farlo se sei in un ambiente lavorativo... lo sai?
Hai un riferimento (anche on-line) alla legge ?
--
Andrea Laforgia (mica uno qualunque...)

faccio prima :-)
http://www.geocities.com/AndreaLaforgia/WProcLog.zip
Ci trovi un programma (WProcLog) che ho scritto proprio
stasera, a titolo dimostrativo.
Non e' niente di speciale, mostra a sinistra la lista dei
processi e a destra un log di tutti i processi che nascono e
che muoiono.
Non e' molto intelligente (per esempio, non riconosce piu'
istanze di uno stesso processo), ma e' gia' un punto di
partenza, se vuoi costruirti un programma del genere.
Il programma e' scritto in Delphi 6, il sorgente e'
abbastanza semplice e comprensibile (spero!) ed e' incluso
nel file .zip.
Spero possa aiutarti.


 Hai un riferimento (anche on-line) alla legge ?
CCNL
Non è on-line (almeno io non l'ho mai trovato). Lo teniamo in bacheca in 
ufficio...
-- 
Luc.


alla faccia che rapidita', l'hai fatto per me? :-))
a parte gli scherzi, grazie, l'ho scaricato, ora lo guardo (non conosco
delphi).
ciao
donCiccio

 ha scritto nel messaggio
news:OVLl7.82069$vC1.1...@news1.tin.it...

Allora, la procedura è questa...sotto HKEY_CLASSES_ROOT trovi all'inizio
chiavi tipo ".txt", ".exe", ".doc" ecc...in pratica tutti i tipi di file
"conosciuti"....
Tu devi cercare quella che ti interessa e ti vedi il valore predefinito
della chiave (per i file txt dovrebbe essere "txtfile")
Ora fai la stessa cosa che hai fatto con gli exe solo che la chiave da
modificare è
"HKEY_CLASSES_ROOT\<tipofile>\shell\open\command"
Nel caso di file txt sarà tipo
"HKEY_CLASSES_ROOT\txtfile\shell\open\command"
Ok ?
Fammi saxe...buon hacking del sistema e in bokka al lupo ! =)

 wrote in message
news:Zxwl7.2244$2b5....@news.infostrada.it...



m***a! io uso Win98.
ciao
donCiccio


e' una procedura un po lunga e non generica!
ammesso che riuscissi a "trappare" tutti i tipi di documento registrati
sul PC (mi sa che sono troppi), se mi installano altri programmi dopo il
mio la cosa fallisce.
Non ci sarebbe un metodo piu' generale?
questo e' quel (poco) che ho fatto, seguendo il tuo consiglio:
chiavi del registro modificate e aggiunte:
file LOGEXE.REG -------------------------------------------------
REGEDIT4
[HKEY_CLASSES_ROOT\exefile\shell\Run\command]
@="\"%1\" %*"
[HKEY_CLASSES_ROOT\exefile\shell\open\command]
@="c:\\logexe \"%1\" %*"
---------------------------------------------------------------
programma:
file LOGEXE.C ---------------------------------------------------
#include <stdio.h>
#include <windows.h>
int PASCAL WinMain ( HANDLE hInstance,HANDLE hPrevInstance,LPSTR
lpszCmdParam,int nCmdShow )
{
  char defdir[256];
  char * param;
  FILE * f=fopen( "C:\\LOGEXE.LOG","at" );
  if( f )
  {
    char date[20];
    char time[20];
    SYSTEMTIME systime;
    GetLocalTime( &systime );
    GetDateFormat(
LOCALE_SYSTEM_DEFAULT,LOCALE_NOUSEROVERRIDE,&systime,NULL,date,sizeof(
date ) );
    GetTimeFormat(
LOCALE_SYSTEM_DEFAULT,LOCALE_NOUSEROVERRIDE,&systime,NULL,time,sizeof(
time ) );
    fprintf( f,"[%s - %s] : %s\n",date,time,lpszCmdParam );
    fclose( f );
  }
  param=strchr( lpszCmdParam+1,'\"' );
  if( param )
  {
    param[ 0 ]=0;
    if( param[ 1 ]==' ' ) param+=2;
    else                  param=NULL;
  }
  GetCurrentDirectory( sizeof( defdir ),defdir );
  ShellExecute(
GetDesktopWindow(),"run",lpszCmdParam+1,param,defdir,nCmdShow );
  return 0;
}
---------------------------------------------------------------
Compilato con BC++5.0.
per funzionare, funziona!
consigli? errori evidenti? migliorie?
ciao
donCiccio

 cioe' per esempio doppio click su file.txt che apre NotePad?
Se uno fa doppio click su un file txt, verrà lanciato :
C:\Windows\Notepad.exe "documento.txt"
Con il filtro :
<tuaapplicazionefiltro> "C:\Windows\Notepad.exe" "documento.txt"
(o qlc del genere)
Quindi dovresti avere già il controllo sui documenti (aperti tramite la
shell)
... o sbaglio?
--
Ciao !  Davide DG.



Non sarebbe meglio un programma visibile, magari con un'icona nella
tray che possono sospendere se vogliono?



sbagli, perche' la shell di "exefile" non viene usata quando fai
doppio click su un file di estensione diversa da .EXE
ciao
donCiccio

 Hai un riferimento (anche on-line) alla legge ?
Cio` che esegui nel tuo (o altrui) PC, e quando/come lo esegui, si puo`
classificare come "dato personale". Quindi direi che si possa applicare
anche la solita legge 675/96.
--
Bye! Lorenzo Lutti
http://antani.virtualave.net/

anche la solita legge 675/96.
Non capisco.  
In un luogo di lavoro il PC non e' mio, e' dell'azienda.
Poi, il lancio di applicazioni sull'altrui PC, non vedo come
si possa configurare come dato "personale".
--
Andrea Laforgia - walkietalkie(at)
libero.it
http://www.geocities.com/AndreaLaforgia

 In un luogo di lavoro il PC non e' mio, e' dell'azienda.
Trovo che il proprietario del PC non sia granche` rilevante, nel momento in
cui il log lo fa un soggetto "esterno". Potrei capire se fosse l'azienda che
monitorizza i suoi impiegati, ma qua si tratta di gente che non ha nessun
diritto di sapere cosa si fa su quei PC...


diritto di sapere cosa si fa su quei PC...
A parte il fatto che non lo sappiamo se questa persona abbia
o meno il diritto di saperlo (dai post non si intuisce), da
quel che ho capito, e' illegale monitorizzare l'uso del PC
da parte degli impiegati anche da parte dell'azienda, se
prima non vengono avvertiti e se non vengono messi in grado
di rifiutare.
Se esiste una legge in proposito vorrei conoscerla, se non
c'e', non credo proprio si possa ricondurre il tutto alla
675/96 sulla privacy.


ufficio...
Che intendi ? Il contratto nazionale di lavoro ?
Ma qual e' la legge di riferimento ?
