Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    variabili ambiente e lettera unità USB

    Carissimi,
    sto compattando una installazione portable di un software.
    Ho un solo piccolo problema.
    Non riesco a capire come indicare la lettera assegnata dall'SO all' unità USB nel file di configurazione dell'applicativo.Lettera che come sappiamo può cambiare da PC a PC e che quindi non può essere inserita in modo univoco.
    Dovrebbe essere contenuta in una variabile d'ambiente che può essere successivamente richiamata negli script.
    Qualcuno per caso si è imbattuto in questo genere di problema?
    Un saluto ed un grazie a tutti
    A.
    Gandalf il Bianco

  2. #2
    Non credo si possa fare. Se vuoi potresti integrare nel programma una funzione che faccia l'elenco delle unità e che verifichi se esiste un tale file. In questo modo capisci qual è la tua chiavetta, che ovviamente può anche cambiare lettera in futuro.

  3. #3
    Quote Originariamente inviata da denis76 Visualizza il messaggio
    Non credo si possa fare. Se vuoi potresti integrare nel programma una funzione che faccia l'elenco delle unità e che verifichi se esiste un tale file. In questo modo capisci qual è la tua chiavetta, che ovviamente può anche cambiare lettera in futuro.
    Mah...non ne sono così convinto.
    Secondo me dovrebbe esistere un file che contiene la lettera assegnata alla periferica.
    Altrimenti i software "portable" su cosa vanno a fare l'installazione?
    Un saluto ed un grazie comunque
    A.
    Gandalf il Bianco

  4. #4
    Se il software gira sulla chiavetta non ti serve sapere che lettera sei. Basta che verifichi da quale unità sei partito.
    E' facile da fare. Eventualmente puoi fare delle query wmi che restituisce informazioni su hardware e sistema.

  5. #5
    Dunque ti spiego:
    ho due applicativi inseriti all'interno della chiavetta.
    Per fare un "reverse search" (quindi saltare dal secondo applicativo ad un punto del primo) esiste una voce all'interno della configurazione di questo dove debbo inserire il path (es F:\Program) etc etc.
    Io quell'"F" vorrei fosse indipendente...non so se ho centrato il problema.
    Win alle volte lo inseriva in "~d0" ma l'applicativo non lo digerisce...continuo la ricerca..
    Un saluto
    Ale
    Gandalf il Bianco

  6. #6
    Avevo capito benissimo la tua situazione. Ci sono passato.
    Nel tuo caso se ad esempio il programma A si trova in f:\program\A e B in f:\program\B per accedere da A a B farai ..\B
    Se poi i programmi, come è capitato a me, sono fatti un po' così da aver bisogno del percorso assoluto per funzionare ed il programmatore non ha voglia di sistemare non c'è molto da fare.

  7. #7
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Io con VBA la ho accrocchiata più o meno come ha proposto denis76 al #2

    significa parte un ciclo da "z" ad "a" che va a cercare un
    particolare file che si trova appunto nella unita

    Trovato il file immaginiamo di avere trovato la unita

    dico immaginiamo perché il caso potrebbe darti uno stesso identico file al di fuori della unita
    ma a me in 3 mesi di "onorato" servizio quotidiano non ha mai dato problemi

    Posto sotto il codice copincollato da adattare alla tua applicazione
    con i commenti incomprensibili cosi come me li ero scritti mentre testavo

    codice:
    Public Sub xy25()
    ' trova la unita di percorso che contiene il file  "????:\Scanned Barcodes\BARCODES.txt"
    Dim x As Integer
    On Error GoTo Err25  
    
      
        For x = 90 To 67 Step -1
            If Len(Dir(UCase(Chr(x)) & ":\Scanned Barcodes\BARCODES.txt")) = 0 Then
                ' in caso di errore 52 questo è il Resume Next
            Else
                Unxx = UCase(Chr(x))
                x = 10  ' arresta il ciclo appena trova
            End If
        Next
    
    ' se la unita di massa dei Barcode non è connessa chiude la applicazione
        If Len(Unxx & "") < 0.5 Then       ' se metto Unit()  allora il ciclo diventa infinito perche ritorna in cima
            MsgBox "Non hai connesso il lettore di barcode"
            Application.Quit
        End If
        
    Exit Sub
    
    Err25:
    ' l'errore 52 si verifica con la unita del CDRoom e se metto una unita ubriaca come ad esempio "GH"
        If Err.Number = 52 Then
            Resume Next
        Else
            MsgBox "Errore n° " & Err.Number & vbNewLine & Err.Description & vbNewLine & "La ricerca della unita del Barcode "
            Application.Quit
        End If
    End Sub
    Ultima modifica di nman; 11-12-2015 a 23:24

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.