Newsgroup: it.comp.lang.delphi
Titolo: Rendere un file "occupato" da windows per evitare che venga cancellato

Tempo fa ho visto circolare per la rete un programmuzzo (shareware..)
chiamato FILE PROTECTOR, che utilizzava un modo semplicissimo per rendere i
file incancellabili: esso rendeva i file scelti dall'utente "utilizzati da
windows"!
Se si tentava di cancellarli appariva ACCESSO NEGATO, il file è in uso. Ma a
dire il vero questi file protetti non erano utilizzati in nessuna
applicazione.
Mi sapete dire se esiste un qualche metodo per rendere qualsiasi file come
"utilizzato da windows" in modo da renderlo incancellabile? ovviamente non
voglio che la mia applicazione apra veramente il file, deve solo fingere di
aprirlo! (altrimenti se ci fossero 200 file le performance del pc sarebbero
pessime!!!)
Sperando in un vostro consiglio :)
saluti
Tanner

 Sperando in un vostro consiglio :)
boh......non mi viene in mente e penso di non conoscere un altro sistema
diverso da quello di aprire realmente il file e di ottenere un handle
riferito ad esso.
In questo modo blocchi la cancellazione.
Si tratta di utilizzare solo la funzione "FileOpen".
Riguardo la performance del PC, immagino che durante una normalissima
sessione di lavoro, Windows tiene aperti piů di 200 file.
Pensa quanti processi ci sono attivi quando ti trovi un PC pieno di roba,
con una sacco di servizi attivi ed icone sulla tray bar.
Per il tuo problema, se ci sono altre soluzioni migliori, ben vengano, io
conosco solo questa.
Ti saluto....ciao ciao !!
Antonio Tarolla

 ha scritto nel messaggio
news:bmBt7.12630$C15.1...@news.infostrada.it...

Ho utilizzi, come già detto da Antonio Tarolla, la funzione FileOpen oppure
dovresti crearti un hook sulle chiamate di sistema per l'accesso ai file e
bloccare quelle che rientrano nella lista dei file da te interessati.


 bloccare quelle che rientrano nella lista dei file da te interessati.
ma c'è un hook del genere ? Io non lo conosco.
Credo ce il programmino menzionato, utilizzi un driver in modo da scendere
molto a basso livello, intercettando anche comandi da prompt DOS.
Ad esempio, c'è FileMon che intercetta tutti i file che vengono aperti anche
da prompt.
Forse con un estensione della SHELL si riesce a fare qualcosa, ma non so
fino a che punto. Mi pare che certe cose possono essere intercettate, ma non
bloccate, mentre un driver ha un comportamento molto differente.
Ti saluto......comunque queste cose sono sempre un casino da fare specie se
non si ha esperienza con il basso livello il che è molto distante dal nostro
e caro amato Delphi che in questi casi potrebbe rappresentare solo
l'interfaccia grafica e qualche riga di codice per giocare con il driver !!
:-)))
Antonio Tarolla

 ha scritto nel messaggio
news:9pc7ep$dvg$1...@nreada.inwind.it...


 pessime!!!)
Non so se sia applicabile, ma hai preso in considerazione di usare i
meccanismi di protezione di NTFS? Inoltre, mi pare una bella domanda da
fare anche su icp.win32.
Saluti
Paolo Arosio

 
http://gpi.infomedia.it/abc/delphi
in Windows, l'hook è un meccanismo di aggancio che serve per monitorare la
tastiera, il mouse, i messaggi ecc ecc....
Questo monitoraggio può essere fatto a livello di singola applicazione
oppure di tutte le applicazioni attive, ed in questo caso si parla di hook
globale.
Ora non ti sto a spiegare altro, guardati l'API "SetWindowsHookEx" che serve
per installare ogni tipo di hook.
Per ulteriori informazioni scrivi nuovamente.
Ti saluto.....
Antonio Tarolla