Newsgroup: it.comp.lang.visual-basic
Titolo: brutto problema con l'handle di un file





salve, ho un problemino...


ho bisogno di ottenere, tramite l'Api GetFileTime, 
la data di ultimo salvataggio di un file Excel. il problema è che prima lo devo 
aprire con CreateFile (giusto?), e il file, durnte l'esecuzione, è gia aperto... 
infatti, quando faccio CreateFile, il risultato è -1, e Err.LastDllError è 32 
(il file è utilizzato da un altro processo). la mia domanda quindi è questa: con 
un file gia aperto, come è possibile ottenerne l'handle, per poi utilizzare 
tutte le funzioni che sul medesimo handle si basano?


grazie 1000 a chiunque voglia rispondermi con un 
qualsiasi suggerimtno, perhce la cosa è molto importante.


 


mario


 


 



 wrote in message news:000801c05b05>
$39dfb460$1ab6abd4@h2k6e7...
 salve, ho un problemin...
 ho bisogno di ottenere, tramite l'Api GetFileTime, la data di ultimo >
salvataggio di un file Excel. il problema è che prima lo devo aprire con
CreateFile (giusto?), e il file, durnte l'esecuzione, è gia aperto...
infatti, quando faccio CreateFile, il risultato è -1, e Err.LastDllError è
32 (il file è utilizzato da un altro processo). la mia domanda quindi è
questa: con un file gia aperto, come è possibile ottenerne l'handle, per poi
utilizzare tutte le funzioni che sul medesimo handle si basano?
------------- END QUOTE --------------
Innanzitutto, ti prego di non postare in html, poiche' non e' consentito
dalle regole di questo newsgroup.
Visto che ti interessa la data di ultimo accesso, perche' non usare l' api
FindFirstFile ? Ti da questa informazione senza bisogno di aprire il file.
Ciao
Aldo





innanzitutto, non ho ancora capito bene come NON 
postare in html, io ci provo, ma il risultato è sempre lo stesso... 
boh...


 


cmq, al findfirst avevo gia pensato, ma sopravviene 
un altro problema. i lrisultato va a finire nella struttura find_data, e io devo 
andare a leggere wLastWriteTime, giusto?


 


bene, mi sono accorto che in realtà questo elemento 
NON FUNZIONA... o meglio, non come mi aspettavo. in realta non mi restituisce la 
data dell'ultimo salvataggio, bensi la data in cui sono "entrato" nel file per 
l'ultima volta, e cioe praticamente la data corrente, visto che il mio file è in 
uso...


la data di utlimo salvataggio, quindi, resta una 
chimera... ::))))


 


mah...


 


se qualcuno ha avuto lo stesso problema, come lo ha 
risolto?


 


grazie


 


mario


 


 



 wrote in message
news:000801c05b05$39dfb460$1ab6abd4@h2k6e7...
salve, ho un problemino...
ho bisogno di ottenere, tramite l'Api GetFileTime, la data di ultimo
salvataggio di un file Excel. il problema è che prima lo devo aprire con
CreateFile (giusto?),
------------- END QUOTE ------------------
Prova ad aprirlo con OpenFile, passandogli come style OF_READ Or
OF_SHARE_DENY_NONE
------------- BEGIN QUOTE ------------------
e il file, durnte l'esecuzione, è gia aperto... infatti, quando faccio
CreateFile, il risultato è -1, e Err.LastDllError è 32 (il file è utilizzato
da un altro processo). la mia domanda quindi è questa: con un file gia
aperto, come è possibile ottenerne l'handle, per poi utilizzare tutte le
funzioni che sul medesimo handle si basano?
------------- END QUOTE ------------------
Ovvio, a questo punto, che ti dia errore.
Ho pero' notato che se apri un file con xl, quello fa qualche modifica
perche' la data di ultima modifica viene a corrispondere con quella di
ultimo accesso, anche se non viene toccato niente.
Ciao
Aldo

 ultimo accesso, anche se non viene toccato niente.
Rettifico.
Questo succede se viene letta la data di ultimo salvataggio mentre il file
e' aperto in xl. Quando viene richiuso, se non sono state fatte
effettivamente modifiche, xl ripristina la data originaria di ultima
modifica.
Ciao
Aldo

la data di utlimo salvataggio, quindi, resta una chimera... ::))))
Mi sbaglio o c'è una funzione apposita di vb per recuperare la data
dell'ultimo salvataggio? Come argomento vuole il percorso, non l'handle,
quindi potrebbe fare al caso tuo.





una funzione di VB che restituisce la data 
dell'ultimo salvataggio? io non lo so, se qalcuno lo sa... cmq sicuramente non è 
quella del FileSystemObject, gia ho provato, e fa lo stesso "errore"... 
figuratevi che ho provato perfino con l'interrupt 21h, AX=7143h, e anche lì mi 
fa lo stesso errore... quindi il "bug", se cosi lo possiamo chiamare, è proprio 
insito nel sistema, mannaggia...


 


mario


 


 







è infatti quello che ho notato anche io, ma non 
dovrebbe, a rigor di logica, funzionare così, giusto? insomma, c'è un errore che 
è un po difficile risolvere... ::))))


peccato...


 


mario


 


 



 wrote in message
news:000601c05b91$b76048a0$8cef2dd5@h2k6e7...
č infatti quello che ho notato anche io, ma non dovrebbe, a rigor di logica,
funzionare cosě, giusto? insomma, c'č un errore che č un po difficile
risolvere... ::))))
peccato...
---------- END QUOTE ----------
Perche' secondo me e' xl che bara.
Nel senso che qualche modifica in realta' la fa, infatti se tu copi quel
file mentre e' aperto da xl, la copia si trova la data di ultimo salvataggio
modificata.
Se killi brutalmente excel ti rimane la data di ultimo salvataggio
modificata anche sul file originale.
Insomma, il vero baco e' Office.
Ciao
Aldo