PDA

View Full Version : Cancellazione file pre-avvio pc


Digital Daigor
06-09-2007, 12:02
mi servirebbe sapere come cancellare file prima che venga avviato il pc, vorrei crearmi un programmino per farlo, e non usarne uno gią fatto.

qualsiasi linguaggio di programmazione, visto che ne voglio imparare uno.

Grazie!

variabilepippo
06-09-2007, 12:23
mi servirebbe sapere come cancellare file prima che venga avviato il pc

Cosa significa "prima che venga avviato il PC"?!?

stdecden
06-09-2007, 17:22
credo intenda prima che venga caricato l'os.

In windows per esempio quando viene visualizzata quella schermata blu per verificare l'integritį del disco rigido.
Credo voglia fare eseguire un programma in quella sezione

71104
06-09-2007, 19:30
mi servirebbe sapere come cancellare file prima che venga avviato il pc, vorrei crearmi un programmino per farlo, e non usarne uno gią fatto. voilą: http://msdn2.microsoft.com/en-us/library/aa365240.aspx
passa NULL al secondo parametro e MOVEFILE_DELAY_UNTIL_REBOOT al terzo :)

qualsiasi linguaggio di programmazione, visto che ne voglio imparare uno. si tratta di una emerita banalitą fattibile tranquillamente in C, a dispetto di tutti gli ingegneri del software presenti in questa sezione che partirebbero in quarta a consigliarti piattaforme managed. di solito io faccio parte del loro gruppo, ma in questo caso si tratta veramente di una sciocchezza.

71104
06-09-2007, 19:30
Cosa significa "prima che venga avviato il PC"?!? non si sarą espresso troppo chiaramente ma ad intuito a me sembrava abbastanza comprensibile: non ha molte possibilitą oltre a quanto gli ho detto io.

variabilepippo
06-09-2007, 19:48
non si sarą espresso troppo chiaramente ma ad intuito a me sembrava abbastanza comprensibile: non ha molte possibilitą oltre a quanto gli ho detto io.


Mai fidarsi dell'intuito, ne ho viste di richieste strampalate girando per i forum... :doh:

qwerty86
06-09-2007, 20:36
Ragazzi scusate se mi intrometto , ma come faccio a ricavare il valore dei flag?
tipo il valore di MOVEFILE_DELAY_UNTIL_REBOOT

variabilepippo
06-09-2007, 20:55
Tali valori sono definiti nell'header winbase.h:


#define MOVEFILE_REPLACE_EXISTING 1
#define MOVEFILE_COPY_ALLOWED 2
#define MOVEFILE_DELAY_UNTIL_REBOOT 4
#define MOVEFILE_WRITE_THROUGH 8
#define MOVEFILE_CREATE_HARDLINK 0x00000010
#define MOVEFILE_FAIL_IF_NOT_TRACKABLE 0x00000020
...

qwerty86
06-09-2007, 20:56
Tali valori sono definiti nell'header winbase.h:


#define MOVEFILE_REPLACE_EXISTING 1
#define MOVEFILE_COPY_ALLOWED 2
#define MOVEFILE_DELAY_UNTIL_REBOOT 4
#define MOVEFILE_WRITE_THROUGH 8
...



utilizzo c# , e poi dico in generale come posso fare a conoscerne i valori ? Grazie

variabilepippo
06-09-2007, 21:01
utilizzo c# , e poi dico in generale come posso fare a conoscerne i valori ? Grazie

A cosa ti serve conoscerne i valori? Quelle definizione simboliche servono proprio per evitare la presenza di "magic numbers" nel codice.

qwerty86
06-09-2007, 21:03
A cosa ti serve conoscerne i valori? Quelle definizione simboliche servono proprio per evitare la presenza di "magic numbers" nel codice.

E' mi dice che non č definito quando lo uso. Siccome č da poco che utilizzo c#...non so come importarlo!:(

variabilepippo
06-09-2007, 21:08
E' mi dice che non č definito quando lo uso. Siccome č da poco che utilizzo c#...non so come importarlo!

Quando lavori con C# devi preferire sempre le soluzioni managed messe a disposizione dalla libreria di classi del .NET Framework. (http://msdn2.microsoft.com/en-us/library/hfa3fa08.aspx) In mancanza di approcci gestiti usa la Windows API dopo aver consultato il sito P/Invoke (http://www.pinvoke.net/).

Per l'uso della Windows API fai riferimento alla documentazione MSDN.

P.S. MOVEFILE_DELAY_UNTIL_REBOOT su PInvoke (http://www.pinvoke.net/search.aspx?search=MOVEFILE_DELAY_UNTIL_REBOOT&namespace=[All])


enum MoveFileFlags
{
MOVEFILE_REPLACE_EXISTING = 0x00000001,
MOVEFILE_COPY_ALLOWED = 0x00000002,
MOVEFILE_DELAY_UNTIL_REBOOT = 0x00000004,
MOVEFILE_WRITE_THROUGH = 0x00000008,
MOVEFILE_CREATE_HARDLINK = 0x00000010,
MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x00000020
}

qwerty86
06-09-2007, 21:21
Quando lavori con C# devi preferire sempre le soluzioni managed messe a disposizione dalla libreria di classi del .NET Framework. (http://msdn2.microsoft.com/en-us/library/hfa3fa08.aspx) In mancanza di approcci gestiti usa la Windows API dopo aver consultato il sito P/Invoke (http://www.pinvoke.net/).

Per l'uso della Windows API fai riferimento alla documentazione MSDN.

P.S. MOVEFILE_DELAY_UNTIL_REBOOT su PInvoke (http://www.pinvoke.net/search.aspx?search=MOVEFILE_DELAY_UNTIL_REBOOT&namespace=[All])


enum MoveFileFlags
{
MOVEFILE_REPLACE_EXISTING = 0x00000001,
MOVEFILE_COPY_ALLOWED = 0x00000002,
MOVEFILE_DELAY_UNTIL_REBOOT = 0x00000004,
MOVEFILE_WRITE_THROUGH = 0x00000008,
MOVEFILE_CREATE_HARDLINK = 0x00000010,
MOVEFILE_FAIL_IF_NOT_TRACKABLE = 0x00000020
}

Wow grazie tantissimo!

qwerty86
06-09-2007, 21:43
Se tipo volessi cancellare tutti i file sul desktop ad ogni avvio ?

PGI-Bis
06-09-2007, 22:00
non ha molte possibilitą oltre a quanto gli ho detto io.

E' che non hai fantasia. Con un magnete di dieci-quindici kili io cancello i file anche senza accendere il PC :D.

qwerty86
06-09-2007, 22:02
E' che non hai fantasia. Con un magnete di dieci-quindici kili io cancello i file anche senza accendere il PC :D.

:D :D

71104
07-09-2007, 00:01
E' che non hai fantasia. Con un magnete di dieci-quindici kili io cancello i file anche senza accendere il PC :D. non va bene :O
dopo che hai cancellato i files il sistema operativo si deve avviare ancora, altrimenti avrebbe chiesto come cancellare files prima di buttare il PC, non di avviarlo :asd: