Newsgroup: it.comp.os.win.windows7
Titolo: Una mano per controllo sorgenti daemon per monitor supporti memo

Ciao NG,
 
Tempo fa chiesi se c'è qualcosa che possa chiamare uno 
script se si montano dischi o si creano nuovi punti di 
mount ma non ci sono state risposte (non è assolutamente 
una lamentela, probabilmente è un problema non comune) 
sicché ho cercato in giro. Il programma esiste ma mi 
scoccia dipendere da un software per giunta non free, e 
per giunta è macchinoso e poco granulare.
 
Allora ho pensato di scriverlo da me, l'ho fatto e sembra 
funzionare. Il problema è che non ho mai programmato in 
ambiente MS e per dirne una, abituato come sono alle 
stringhe come char*, ho convertito tutto quello che le 
chiamate di sistema restituiscono con WCHAR, e ci sono 
tante altre ingenuità come i miei costrutti da studentello 
alle primissime armi. Inoltre sono arrugginito come pochi.
 
Dato che un'applicativo free e standalone sembra non 
esserci, pensavo anzitutto di metterlo a disposizione di 
chi vuole (in un secondo momento potrei fare un account 
sourceforge o qualcosa di simile), ma indipendentemente da 
questo, se ci fosse qualcuno disposto a dare un'occhiata 
al funzionamento del programma prima sistemando le cose 
macroscopiche e poi stressandolo un po' mi farebbe un gran 
favore.
 
L'unica cosa che chiedo a chi volesse eventualmente darmi 
una mano è di non stravolgere lo stile, perché poi non 
capirei cosa è stato fatto.
 
Penso che sarà subito evidente che è scritto in modo 
goffo, se è uno strazio seguirlo non me la prendo e come 
non detto.
 
Il prossimo passo è implementare la gestione errori in 
modo che possa proseguire a funzionare e poi integrarci 
Lua in modo che possa eseguire scripts quando 
compare/scompare un volume e/o punti di mounts.
 
E' sviluppato con VS2010 ma fa così poco ricorso al SO che 
dovrebbe essere facilmente importabile in versioni 
precedenti e successive.
 
E' scaricabile da qua:
 
https://www.dropbox.com/s/0mj40mtutddvh4h/storagemon.rar?dl=0
 
 
Grazie a chi volesse darmi una mano.
 
Apx
 
-- 
- Amore, finalmente a letto... Fammi urlare come
   una pazza!
- Sei ingrassata.
 
 


https://docs.microsoft.com/en-us/windows/win32/devio/detecting-media-insertion-or-removal
 

> 
https://docs.microsoft.com/en-us/windows/win32/devio/detecting-media-insertion-or-removal
 
 
L'avevo visto nelle peregrinazioni dei giorni scorsi ma 
come sempre do prima un'occhiata al listato; nei commenti 
dice che controlla se un CD o un DVD è stato inserito, ma 
anzitutto non so se vale anche per le unità disco rigido 
(dal nome della funzione sembrerebbe di sì) e soprattutto 
dove la partizione è stata montata e/o lettera attribuita.
 
Comunque dopo provo  a compilarlo e vedrò cosa fa.


 Comunque dopo provo  a compilarlo e vedrò cosa fa.
 
Non e' chiarissimo se la notifica si riferisce solo al supporto o a 
qualunque dispositivo, ma parrebbe di si.
Comunque quello e' il metodo giusto, non va bene fare polling.
 
Tieni presente che quello e' solo uno spezzone che va integrato, cosi' 
com'e' non fa nulla. Un esempio completo lo trovi nell'argomento 
precedente di quella guida:
https://docs.microsoft.com/en-us/windows/win32/devio/registering-for-device-notification
 

 
https://docs.microsoft.com/en-us/windows/win32/devio/registering-for-device-notification
 
 
Grazie, lo scandaglio e lo proverò!


 Grazie, lo scandaglio e lo proverò!
 
Una prova rapida potrebbe essere quella di usare l'API
"RegisterDeviceNotification" descritta qui
 
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-registerdevicenotificationw
 
 
con il flag "DEVICE_NOTIFY_ALL_INTERFACE_CLASSES" in modo da NON
filtrare per classi, e poi fare il dump (in un file o chiamando la
"OutputDebugString") delle info, in quel modo sarai in grado di fare
delle prove con vari device ed impostare i filtri come desiderato,
occhio solo a richiamare la "UnregisterDeviceNotification" al termine
dell'applicazione
 
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-unregisterdevicenotification
 
 
inserendo la chiamata in una funzione che venga richiamata anche nel
caso in cui l'app termini con un errore in modo da evitare problemi
 

 errore in modo da evitare problemi
 
Grazie anche a te... BTW, è qualche giorno che non ci 
lavoro e sudo freddo all'idea di aprire VS, è veramente 
complicato. Lo so che troverò tutto come ho lasciato (i 
file sln sembrano davvero ricordare TUTTO) ma comunque mi 
sento a disagio. Proverò a sperimentare con gli eventi e 
vedremo cosa accadrà.
