Condividi:        

FSO Cercare i drive in un computer

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

FSO Cercare i drive in un computer

Postdi RaeleaR » 07/04/15 02:47

Salve a tutti,
sto cercando di applicare, all'interno di FileSystemObject, l'esempio della Guida riguardo alla collezione Drives.
La prima cosa che noto é che, in barba a quello che mi hanno insegnato nei vari forum che frequento, questo compreso ovviam., giá a livello di dichiarazioni mettono tutto sotto un 'generico' Dim.. Quindi non ho ben capito come sono dichiarate le variabili.. sono io che non capisco?
Poi, quella che propongono come una Sub per avere il listato dei Drive presenti in un computer, immagino, mi restituisce l'errore 71 'Disco non pronto' (o qualcosa di simile visto che traduco dallo spagnolo).
Questo é il codice:

Codice: Seleziona tutto
Sub ShowDriveList
    Dim fs, d, dc, s, n
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set dc = fs.Drives
    For Each d in dc
        s = s & d.DriveLetter & " - "
        If d.DriveType = Remote Then
            n = d.ShareName
        Else
            n = d.VolumeName
        End If
        s = s & n & vbCrLf
    Next
    MsgBox s
End Sub


L'errore lo ricevo sia su "n = d.ShareName" che su "n = d.VolumeName".
Potreste aiutarmi a capire il perché?

Premesso che passo un programma da me fatto ad un Cliente, vorrei verificare dal WorkBook_Open, in quale Drive si trova la cartella che lo contiene, quindi é per questo che vorrei ciclare tra i vari Drive presenti nel computer per vedere dove é stata messa la cartella, per poi effettuare altri controlli.

Grazie in anticipo
Rael
Win 8.1 - Office 2010 Esp
Avatar utente
RaeleaR
Utente Junior
 
Post: 70
Iscritto il: 26/09/14 08:55
Località: Argentina

Sponsor
 

Re: FSO Cercare i drive in un computer

Postdi enrico43 » 07/04/15 10:22

Se è questo che cerchi
Codice: Seleziona tutto
Sub ListaDrive()
    Dim objDrv      As Object
    Dim strMsg      As String
 
    For Each objDrv In CreateObject("Scripting.FileSystemObject").drives
    Select Case objDrv.DriveType
    Case 0: strMsg = strMsg & vbNewLine & objDrv.DriveLetter & ": Unknown"
    Case 1: strMsg = strMsg & vbNewLine & objDrv.DriveLetter & ": Removable Drive"
    Case 2: strMsg = strMsg & vbNewLine & objDrv.DriveLetter & ": Hard Disk Drive"
    Case 3: strMsg = strMsg & vbNewLine & objDrv.DriveLetter & ": Network Drive"
    Case 4: strMsg = strMsg & vbNewLine & objDrv.DriveLetter & ": CDROM Drive"
    Case 5: strMsg = strMsg & vbNewLine & objDrv.DriveLetter & ": RAM Disk Drive"
    End Select
    Next
 
    Set objDrv = Nothing
    MsgBox strMsg, vbInformation, "Da Enrico43"
End Sub

Se invece cerchi i Driver ODBC che si trovano in
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers
è diverso.
Ciao
enrico43
Utente Senior
 
Post: 208
Iscritto il: 13/09/14 15:33
Località: Fiumicino

Re: FSO Cercare i drive in un computer

Postdi scossa » 07/04/15 13:20

enrico43 ha scritto:Se è questo che cerchi
Codice: Seleziona tutto
.......
   MsgBox strMsg, vbInformation, "Da Enrico43"



Di solito si cita la fonte:
http://excelexperts.com/List-and-Type-of-Drives-VBA
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 427
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: FSO Cercare i drive in un computer

Postdi enrico43 » 07/04/15 13:34

Corretto Scossa, devo mettere in calce ai miei suggerimenti
The Credit for this is not Mine, I'm only the messenger
poichè tutti i miei trick derivano principalmente dal Vs sito/Macristi (che saluto) o dal Web.
Per te invece
Un cordiale saluto
Enrico
enrico43
Utente Senior
 
Post: 208
Iscritto il: 13/09/14 15:33
Località: Fiumicino

Re: FSO Cercare i drive in un computer

Postdi RaeleaR » 07/04/15 17:42

Ciao Enrico e ciao Scossa,

{[(forse)]} sono stato poco chiaro io ..o {[(forse)]} troppo veloce nella risposta Enrico.. :lol:

scherzi a parte, grazie Enrico per il contributo.. ho capito come sono dimensionate le variabili ed anche che esiste un altro modo per avere il listato delle Unitá presenti in un computer..
ma ..
non ho capito il perché dell'errore che ricevo.. (non vuoi dirmelo?) :lol: ..vabbé non mi offendo
ma ..
non hai voluto neanche dirmi come faccio a trovare l'Unitá dove é memorizzata la Cartella che contiene un determinato File.. (ultima domanda del post) :cry: :( ..allora mi stai discriminando!

.....scossa... e tu? manco l'hai letto il post? ..il mio.. perché quello di Enrico sicuro che l'hai letto.. :D :D :D

Vabbé si fa per ridere ovviamente.. entrambi nel passato siete stati "grandi!" nell'assistenza che mi avete fornito su altri problemi.. capisco che eravate impegnati con le uova di Pasqua LOL

IN TUTTI I MODI! ..ho studiato ben bene la questione durante la notte..

ma..

non sono venuto a capo del perché mi dia quell'errore.. e, diciamo che poco mi importa a questo punto.. ...perché..
come dicevo.. e quindi tornando alla mia reale esigenza, piú che quella didattica..

..per sapere

verificare dal WorkBook_Open, in quale Drive si trova la cartella che lo contiene, quindi é per questo che vorrei ciclare tra i vari Drive presenti nel computer per vedere dove é stata messa la cartella, per poi effettuare altri controlli.


visto che sono in Workbook_Open..

basta scrivere

ThisWorkbook.Path

Vi ringrazio comunque, a parte gli scherzi di cui sopra, per il vostro tempo.. a volte anche solo scrivere il problema o leggere una risposta, accendono quella lampadina che aiuta a ragionare.
Rael
Win 8.1 - Office 2010 Esp
Avatar utente
RaeleaR
Utente Junior
 
Post: 70
Iscritto il: 26/09/14 08:55
Località: Argentina

Re: FSO Cercare i drive in un computer

Postdi Anthony47 » 07/04/15 20:15

Non e' mai troppo tardi per imparare a usare la proprieta' Path del Workbook.

Se si dimensiona una variabile come, mettiamo, Long, essa potra' contenere solo valori Long; andra' in errore l' istruzione che cercasse di inserire nella variabile qualcos'altro. Ovviamente se sai che una variabile conterra' un certo tipo di dati fai bene a dichiararla di quel tipo (ne guadagni in tempi di accesso e in byte di memoria). Se invece non puoi garantire quella identita' allora dovrai dichiarare la variabile di tipo Variant, che siccome e' il tipo di default si puo' anche omettere; oppure dovrai inserire opportune procedure per gestire le situazioni di errore che si dovessero presentare.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: FSO Cercare i drive in un computer

Postdi enrico43 » 07/04/15 20:43

Ma scusa Raele, cosa si deve cercare, il nome, il tipo di file, cosa contiene, etc. Ci sono molti modi di cercare, tra cui anche il cerca di Windows. Poi trasformare il cerca in macro ci pensa Scossa, o io riportando qualcosa che ho accantonato o meglio i mostri delle macro di pc-facile. Io ti posso dare 1 dritta, se conosci la Dir +o-, poi puoi aggiungere anche le Subdir. Lo uso(avo) per trovare un file di cui ricordo il nome approssimativo, ma che è un excel nel marasma del server della società.
Codice: Seleziona tutto
Sub CercaFileInDir()
Dim lngCellCounter As Long
'Metti il tipo di file che cerchi nel FileType, es: msoFileTypeAllFiles. Io ho messo file excel
'Metti dove cercare in LookIn, es "C:/". Io ho messo il Desktop
Application.ScreenUpdating = False
With Application.FileSearch
.NewSearch
.FileType = msoFileTypeExcelWorkbooks
.LookIn = CurDir()
.SearchSubFolders = False 'se vuoi che cerchi anche nelle SubDir metti True
If .Execute() > 0 Then
MsgBox "   Trovati " & .FoundFiles.Count & " file."
For lngCellCounter = 1 To .FoundFiles.Count
Cells(lngCellCounter, 1) = .FoundFiles(lngCellCounter)
Sheets("Sheet1").Select
Next lngCellCounter
Range("A1").Select
Selection.EntireRow.Insert
Range("AA2").Select
Selection.Copy
Range("A1").Select
ActiveSheet.Paste
Else
MsgBox "Nessun file trovato!"
End If
End With
Application.ScreenUpdating = True
End Sub

che ti elenca tutti i file di quella Dir (e Subdir) e li scrive sul foglio1.
OT Scossa, questa macro credo abbia più di 10 anni, scusami ma non ricordo neppure se l'ho modificata. Fine OT
Così facciam contenti tutti.
Saluti
Enrico
enrico43
Utente Senior
 
Post: 208
Iscritto il: 13/09/14 15:33
Località: Fiumicino

Re: FSO Cercare i drive in un computer

Postdi Anthony47 » 07/04/15 20:57

Il buon RaeleaR voleva solo cercare il nome della cartella che ospita il file, e ha risolto con Thisworkbook.Path.
Gli esperimenti fatti con FileSystemObject gli torneranno buoni per un altro caso...

Ciao!
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: FSO Cercare i drive in un computer

Postdi RaeleaR » 08/04/15 00:03

:D tengo a precisare che, come ho scritto precedentemente, scherzavo caricandovi un poco :lol:

RIBADISCO CHE OLTRE CHE GENIACCI !SIETE ANCHE DEGLI ANGELI! mi avete aiutato tutti piú volte alla grande.. ma torniamo seri..
come dice Anthony e come poi stanno le cose, son partito dall'utilizzo di FileSystemObject (che devo utilizzare per altre cose) per risolvere una domanda che invece ho scoperto si risolveva con un semplice Workbook.Name.. quindi diciamo che ho fuorviato io..

Il tutto si inquadra in un contesto piú ampio e che vi spiego cosí, se avete tempo e voglia, mi date il vostro parere o suggerimenti :)

Ho fatto un programma che passeró in prova al Cliente per (diciamo) 15gg. Per evitare ogni tipo di sorprese, nella cartella che contiene il Programma ho previsto un file.txt in cui inserisco alcune cose di default ed altre le ricavo con il FileSystemObject al momento del primo avvio del Programma.
Di default ci sará NomeCartella e NomeProgramma; se al Workbook_Open questi nomi non corrispondono é evidente che qualcuno ci sta provando, quindi si chiude il Programma.
Con FileSystemObject andró a scrivere il SerialNumber di C e/o della unitá in cui é stata messa la Cartella del Progr. e/o il Progr. stesso; la data iniziale; e non so se sia il caso di aggiungere altro come dati per la sicurezza del periodo di prova.
Ad ogni avvio, il codice controllerá se esiste il file.txt (Se é stato cancellato o se é la prima volta che si avvia il Progr.); se i dati in esso contenuti sono difformi da quelli previsti (mettiamo che uno voglia passare il Progr. ad altri). Nei casi previsti il Progr. non si avvia e si chiude l'applicazione.
Vi sembra corretto?

Posso approfittare e fare una domanda tra le righe? Io uso le due istruzioni ThisWorkbook.Close e poi Application.Quit che (quest'ultima) mi riporta la Guida testualmente "Esce da Microsoft Excel"... vuol dire che chiude Excel in toto? Perché a me non chiude Excel?

Beh.. mi sembra di aver scritto abbastanza e, sperando siate arrivati a leggere sin qui
Vi ringrazio tutti ancora una volta per l'attenzione e la pazienza
Rael
Win 8.1 - Office 2010 Esp
Avatar utente
RaeleaR
Utente Junior
 
Post: 70
Iscritto il: 26/09/14 08:55
Località: Argentina

Re: FSO Cercare i drive in un computer

Postdi enrico43 » 08/04/15 08:35

Avrai un altra istanza excel aperta, ma quel workbook te lo chiude.
enrico43
Utente Senior
 
Post: 208
Iscritto il: 13/09/14 15:33
Località: Fiumicino

Re: FSO Cercare i drive in un computer

Postdi Anthony47 » 08/04/15 10:21

Io uso le due istruzioni ThisWorkbook.Close e poi Application.Quit che (quest'ultima) mi riporta la Guida testualmente "Esce da Microsoft Excel"... vuol dire che chiude Excel in toto? Perché a me non chiude Excel?
Premesso che ti diffido a presentarti a me con una macro che chiuda il mio excel quando vuoi tu e non quando voglio io, sara' mica perche' quando chiudi il workbook le sue macro si chiudono allo stesso tempo?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: FSO Cercare i drive in un computer

Postdi RaeleaR » 08/04/15 10:45

:lol:
beh.. non pensavo fosse cosí grave

@Enrico, che devo intendere come istanze? (perdona la mia abissale ignoranza in materia, eppure cresco.. pian pianino) ..altri workbook? ..comunque mi sento di rispondere che non ho altro aperto se non il workbook su cui sto lavorando..

@Anthony, ma scusa.. se ad esempio avessi una barra degli strumenti personalizzata (ho di recente scoperto che c'é anche un tool con cui posso cambiare le icone e legare ad esse l'apertura di UserForm, fogli ecc.. che faccio.. gli chiudo solo il mio programma e devo ripristinargli la barra delle opzioni a quella originale?
:undecided: ..en serio?
comunque non ho inteso la tua domanda Anthony..
sara' mica perche' quando chiudi il workbook le sue macro si chiudono allo stesso tempo?
Rael
Win 8.1 - Office 2010 Esp
Avatar utente
RaeleaR
Utente Junior
 
Post: 70
Iscritto il: 26/09/14 08:55
Località: Argentina

Re: FSO Cercare i drive in un computer

Postdi enrico43 » 08/04/15 10:50

Sarà mica che il tuo capolavoro gli piace troppo e non lo vuole abbandonare ?
enrico43
Utente Senior
 
Post: 208
Iscritto il: 13/09/14 15:33
Località: Fiumicino

Re: FSO Cercare i drive in un computer

Postdi Anthony47 » 08/04/15 11:40

Ah... Non solo pensi di poter chiudere il mio excel ma anche di lasciarmelo con le impostazioni modificate? Rinnovo e amplio la diffida...
Se vuoi modificare l' interfaccia a beneficio di un certo workbook prova a leggere questa doc Microsoft: https://msdn.microsoft.com/en-us/librar ... -snippet-1
Ma so che ci sono anche strumenti di terze parti, quindi fai una ricerca con "programmatically save ribbon customization excel 2010" (senza le virgolette).

Quando dico "sara' mica perche' quando chiudi il workbook le sue macro si chiudono allo stesso tempo?" intendo che appena fai Thisworkbook.Close le macro di quel workbook scompaiono e quindi eventuali successive istruzioni vanno in fumo.

Per vedere se hai due istanze di programma, apri TaskManager (tramite Contr-Alt-Cancel) e controlla sul tab Processi quanti EXCEL.EXE sono in esecuzione; ogni processo corrisponde a una istanza.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: FSO Cercare i drive in un computer

Postdi RaeleaR » 08/04/15 12:38

Grazie Anthony chiarissimo come sempre!

mi hai convinto.. quando ti passeró il mio "capolavoro", :lol: come dice Enrico, ti lasceró decidere quando chiudere il tuo excel :D

grazie ad entrambe per farmi crescere
Rael
Win 8.1 - Office 2010 Esp
Avatar utente
RaeleaR
Utente Junior
 
Post: 70
Iscritto il: 26/09/14 08:55
Località: Argentina

Re: FSO Cercare i drive in un computer

Postdi Flash30005 » 08/04/15 14:55

RaeleaR ha scritto:Ho fatto un programma che passeró in prova al Cliente per (diciamo) 15gg. Per evitare ogni tipo di sorprese, nella cartella che contiene il Programma ho previsto un file.txt in cui inserisco alcune cose di default ed altre le ricavo con il FileSystemObject al momento del primo avvio del Programma.
Di default ci sará NomeCartella e NomeProgramma; se al Workbook_Open questi nomi non corrispondono é evidente che qualcuno ci sta provando, quindi si chiude il Programma.
Con FileSystemObject andró a scrivere il SerialNumber di C e/o della unitá in cui é stata messa la Cartella del Progr. e/o il Progr. stesso; la data iniziale; e non so se sia il caso di aggiungere altro come dati per la sicurezza del periodo di prova.
Ad ogni avvio, il codice controllerá se esiste il file.txt (Se é stato cancellato o se é la prima volta che si avvia il Progr.); se i dati in esso contenuti sono difformi da quelli previsti (mettiamo che uno voglia passare il Progr. ad altri). Nei casi previsti il Progr. non si avvia e si chiude l'applicazione.


Già superato da tempo...
Ammettiamo che il tuo cliente Tizio abbia passato il programma a Caio
Caio non riesce a farlo funzionare ma è interessato a contattarti per avere il programma funzionante, hai previsto un "Reset" ?

Un'altra domanda, quale mezzo usi per l'invio del "programma"?
ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: FSO Cercare i drive in un computer

Postdi RaeleaR » 08/04/15 16:19

Ciao Flash,

hai previsto un "Reset" ?


Se ho capito cosa intendi per reset, non credo si tratti di un reset vero e proprio, ma qualcosa di simile. Se l'applicazione si "Blocca" per una delle condizioni succitate, Appare un messaggio in una label su uno UserForm che invita a contattare l' "assistenza" (cioé io) :oops: ..un txtbox piccolino nella UF mi consente di entrare nel Progr. e sistemare le cose. Lo so, é terribile, ma non so fare di meglio.. Se hai un suggerimento...? (ora che ci penso).. ma nel caso sia interessato, fatto salvo quello che dico qui di seguito, gli invierei il programma exnovo.. no?

quale mezzo usi per l'invio del "programma"?


Sto lottando con l'invio via email che sino ad ora non ho risolto per via del fatto che, su questo portatile, il dispositivo di rete é legato a doppia mandata con l'indirizzo di posta della mia compagna, quindi, per inviare email con CDO posso solo usare il suo SMTP che é smtp.live.com, mentre io sono gmail. Purtroppo non ho ancora trovato una soluzione per aggirare l'ostacolo. Quando avviamo il computer, viene richiesto l'indirizzo di posta (che giá viene inserito di default in un riquadro) e la relativa password. Ho provato ad entrare nel dispositivo di rete ma mi da l'errore " 'indirizzo emai del computer' sta negando l'accesso al suo PC. Si metta in contatto con il proprietario del Dispositivo di Rete perché le permetta l'accesso al suo PC". ...Idee?
Pensavo di utilizzare la email anche per consegnare al Cliente una "chiave" di attivazione del prodotto una volta che si concluda il pagamento. Ma se non risolvo il problema email immagino che il tutto avverrá manualmente con un pendrive.
Rael
Win 8.1 - Office 2010 Esp
Avatar utente
RaeleaR
Utente Junior
 
Post: 70
Iscritto il: 26/09/14 08:55
Località: Argentina

Re: FSO Cercare i drive in un computer

Postdi ricky53 » 08/04/15 17:02

Ciao,
per la mia esperienza posso dire che qualunque sistema di controllo, protezione e limitazione su un pacchetto excel viene facilmente rimosso da un utente medio.

Il consiglio che posso darti è quello di fornire in prova il pacchetto con funzioni limitate e, a pagamento concluso con le modalità da voi concordate, inviargli il pacchetto completo.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: FSO Cercare i drive in un computer

Postdi RaeleaR » 08/04/15 17:31

Ciao Ricky e grazie per il tuo apporto,

in realtá, per il Paese dove mi trovo, e attenzione, c'é una differenza anche da cittá a cittá, quello che piú mi aspetto, non é il cercare di sproteggere il Programma forzando le password o altro del genere.. almeno qui, c'é una tendenza alla 'furbizia' spicciola.. e questo primo Utente, che tra virgolette "é un amico" (attenzione alle maiuscole), ha una conoscenza informatica al di sotto della media, quindi credo si limiterrebbe a cercare di passare il Programma (magari a pagamento) a qualche suo collega.. si é stupito quando gli ho detto che ci sarebbe stata una chiave di attivazione.. poi chissá, spero, magari mi sbaglio.. ma :) sai com'é.. conosco i miei polli, ci convivo ormai da 4 anni..
Rael
Win 8.1 - Office 2010 Esp
Avatar utente
RaeleaR
Utente Junior
 
Post: 70
Iscritto il: 26/09/14 08:55
Località: Argentina

Re: FSO Cercare i drive in un computer

Postdi Flash30005 » 08/04/15 18:40

Fermo restando che le protezioni in excel sono blande...
Per Reset intendo un qualcosa che ripristini il PC precedente al primo utilizzo del tuo programma
Hai detto che scrivi un file testo e se non corrisponde a ciò che è scritto il programma si blocca oppure se il codice disco non è corretto etc
quindi un utente che ha avuto in "prestito" il file di altri si troverà nelle condizioni di aver creato il file testo diverso o codice disco suo ma il file no, quindi quando gli invierai un file pulito questo dovrà funzionare e quindi l'unica cosa è togliere e riscrivere il file testo etc etc. (con questo intendo ripristino Pc a condizione precedente il primo utilizzo) ma...
se invii il file pulito che ripristina le condizioni di utilizzo attraverso l'email, l'utente, una volta che non funziona più il programma sia per scadenza data sia per altro, può scaricare il file nuovamente dalla email locale (che ha il file allegato) e quel file funzionerà sempre come ex-novo, anzi se quel file lo cede ad altre persone il programma funzionerà per tutti coloro che lo riceveranno in quanto non usato.
Ti consiglio l'iscrizione qualche server-host come rapidshare o filedropper o wetrasfer e inviare il link all'utente.
senza iscrizione i server host eliminano il file in 15 giorni al massimo, se iscritto puoi eliminare il file nel server e questo non sarà più disponibile.
Rimane il fatto che un utente capendo l'inghippo possa salvarsi una copia del file nel PC mantenendo sempre un originale quindi una ulteriore sicurezza sarebbe quella che all'avvio del programma elimini file con stesso nome o magari versioni precedenti presenti nel PC.
Ma qui stiamo diventando un po' cattivi :D
ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "FSO Cercare i drive in un computer":


Chi c’è in linea

Visitano il forum: Nessuno e 41 ospiti