VB .NET Controllo esecuzione file

domenica 18 maggio 2008 - 13.23

platino Profilo | Junior Member

Salve a tutti.
Ho da creare un programma che conta tutte le volte che un certo file viene caricato, ad esempio il file "nudge.wma" di Windows live messenger. Ecco, io ho bisogno che vengano contate tutte le volte che il file viene utilizzato, da qualsiasi processo, anche estraneo alla mia applicazione. Come posso fare???
Grazie mille per le risposte


_____platino_____
Visitate il mio Forum! ecco il link: www.studentsmeeting.forumitalian.com registratevi e pstate, mi raccomando! ;)

aiedail92 Profilo | Expert

Ciao

Potresti usare il componente FileSystemWatcher, lo trovi nella casella degli strumenti nel Designer. Una volta aggiunto ti basta impostare Path sulla cartella contenente il file, e Filter sul nome del file da monitorare, quindi imposta NotifyFilter sulla combinazione che ti serve e EnableRaisingEvents su true. A questo punto di resto solo di intercettare gli eventi del controllo per sapere quando un file viene modificato (Changed), creato (Created), rimosso (Deleted) o rinominato (Renamed)

Luca

platino Profilo | Junior Member

Grazie per la risposta. La prima parte l'ho capita. Però non riesco a capire come fare a fare aumentare il valore della textbox (che all'inizio è 0) ogniqualvolta che il file è modificato. Potresti postarmi il codice
grazie mille



_____platino_____
Visitate il mio Forum! ecco il link: www.studentsmeeting.forumitalian.com registratevi e pstate, mi raccomando! ;)

aiedail92 Profilo | Expert

Così dovrebbe andar bene:

Private Sub tuoFileSystemWatcher_Changed _ (ByVal sender As Object, _ ByVal e As System.IO.FileSystemEventArgs) _ 'La sub gestisce l'evento Changed del FileSystemWatcher Handles tuoFileSystemWatcher.Changed 'Aumento di 1 il valore della TextBox tuaTextBox.Text = Integer.Parse(tuaTextBox.Text) + 1 End Sub

Luca

platino Profilo | Junior Member

Io ho impostato nel filesystemwatcher:
enableraisingevents=true filter=nudge.wma generatemember=true incledesubdirectories=true modifiers=public notifyfilter=Lastaccess path=C:/programmi/Windows Live/Messenger/
e nel codice ho copiato e incollato quello che mi hai scritto tu, ma non funziona:non si aumenta la textbox1 di valore +1 quando apro il file nudge.wma
Per sicurezza ecco il codice:
Public Class Form1 Private Sub tuoFileSystemWatcher_Changed _ (ByVal sender As Object, _ ByVal e As System.IO.FileSystemEventArgs) Handles FileSystemWatcher1.Changed 'Aumento di 1 il valore della TextBox TextBox1.Text = Integer.Parse(TextBox1.Text) + 1 End Sub End Class
Come mai???
Grazie mille



_____platino_____
Visitate il mio Forum! ecco il link: www.studentsmeeting.forumitalian.com registratevi e pstate, mi raccomando! ;)

aiedail92 Profilo | Expert

Ho fatto qualche prova ed ho constatato che anche con me è come dici tu.

Forse dipende dal fatto che alcuni programmi aprono i file senza impostare la data dell'ultimo accesso, ma è solo una mia ipotesi...

Luca

platino Profilo | Junior Member

Quindi? Non c'è modo di controllare il numero delle volte che il file viene aperto???
Nessun altro modo???
Grazie



_____platino_____
Visitate il mio Forum! ecco il link: www.studentsmeeting.forumitalian.com registratevi e pstate, mi raccomando! ;)

Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5