Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    74

    [vb.net]Tenere traccia dei file aperti in un pc

    Ciao a tutti

    Ho la necessità di calcolare le ore totali di ogni file ( .CATPart e .CATProduct) aperto nel pc.

    In pratica vorrei leggere tutti i file che sono stati aperti in data odierna filtrare quelli con il tipo di file scelto e leggere l'ora di apertura e chiusure e fare la differenza.

    Purtroppo con conosco la funzione per vedere i file che sono sono stati aperti e chiusi qualcuno può aiutarmi a trovare questa informazione?

    Grazie

  2. #2
    Non è una questione banale, credo sia necessario scrivere codice che gira in kernel-mode per monitorare tutte le aperture e chiusure dei file (o comunque iniettare del proprio codice in tutti i processi in esecuzione e fare mestieri tipo IAT patching & co. su un numero non indifferente di API); in ogni caso, VB.NET non è adatto.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Originariamente inviato da MItaly
    Non è una questione banale, credo sia necessario scrivere codice che gira in kernel-mode per monitorare tutte le aperture e chiusure dei file (o comunque iniettare del proprio codice in tutti i processi in esecuzione e fare mestieri tipo IAT patching & co. su un numero non indifferente di API); in ogni caso, VB.NET non è adatto.
    "Fare la cosa giusta non è sempre fare la cosa giusta"..Prendo in prestito una celebre frase di un noto film per introdurre una possibile soluzione alternativa a quanto suggerito da MItaly, sicuramente la più corretta da un punto di vista teorico; in VB.NET esiste un controllo denominato FileSystemWatcher che monitora tutto ciò che avviene in una determinata cartella (creazione/modifica/cancellazione/apertura files) per cui - adeguatamente implementato - questo metodo può essere risolutivo.
    Per la spiegazione del controllo, rimando a MSDN.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    74
    ok grazie per la risposta

    Non esiste proprio un sistema semplice per sapere quante ore è stato utilizzato un certo file ?
    I file che mi serve tenere traccia vengono aperti con Catia V5 R19 ed possibile creare macro come per Microsoft excel , può essere una soluzione piu semplice svolgere questa funzione come macro all'interno di Catia?

  5. #5
    Originariamente inviato da MdE2005
    "Fare la cosa giusta non è sempre fare la cosa giusta"..Prendo in prestito una celebre frase di un noto film per introdurre una possibile soluzione alternativa a quanto suggerito da MItaly, sicuramente la più corretta da un punto di vista teorico; in VB.NET esiste un controllo denominato FileSystemWatcher che monitora tutto ciò che avviene in una determinata cartella (creazione/modifica/cancellazione/apertura files) per cui - adeguatamente implementato - questo metodo può essere risolutivo.
    Il FileSystemWatcher è estremamente comodo, ma temo che non vada bene per quello che chiede dato che in effetti verifica le modifiche a livello di file system (file creato/modificato), ma non traccia lo stato degli handle ai file - ovvero, non si riesce a sapere per quanto un file è stato tenuto aperto da un determinato processo. In altri termini, il FileSystemWatcher è una soluzione assolutamente corretta, ma ad un problema leggermente diverso.

    D'altra parte il problema, per come è posto, è piuttosto nebuloso: in effetti il programma potrebbe aprire il file, leggerlo in memoria e chiuderlo, per poi salvare alla fine della sessione i dati modificati; in questo caso, il file "per l'utente" è stato aperto tot minuti, per il sistema operativo giusto il tempo di leggerlo in memoria all'inizio e salvarlo alla fine.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Avevo scritto - non a caso - "adeguatamente implementato": come scritto in precedenza, non è la soluzione migliore ma può essere utile al caso posto dall'utente: una volta intercettata l'apertura del file, può essere tentato l'accesso al file ad intervalli regolari imposti secondo le necessità dell'utente, che credo siano dell'ordine dei minuti; l'accesso al file sarebbe negato sino alla chiusura del file stesso mentre una volta chiuso il file l'accesso risulterebbe possibile, e tale orario dovrebbe essere considerato come l'orario di termine utilizzo del file stesso. E' una soluzione, come anticipato, non corretta e un pò farraginosa, ma il linguaggio utilizzato e la richiesta non consentono grosse possibilità.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.