Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    96

    [Visual Basic 2010]Eseguire azione se si clicca su item indefinito

    Mi spiego meglio... Io ho fatto caricare in una listbox tutti i file .exe di una cartella, il mio problema è che se io clicco su un'item lui mi deve eseguire il programma.
    Io non so come si chiama o cosa ci sia scritto nel text dell'item perchè lui li carica dalla cartella e possono sempre variare.
    Mettiamo che abbia caricato Prog.exe se io ci clicco sopra e lui deve eseguirlo.
    Spero di essere stato abbastanza chiaro.

  2. #2
    Posto la proprietà SelectionMode su One, basta fare così:

    codice:
    dim nomefile as string = listbox1.selecteditem.tostring
    process.start(nomefile)
    Il consiglio è quello di verificare l'esistenza del file prima di eseguirlo, e di racchiudere tutto in un costrutto Try-catch per la gestione di eventuali eccezioni.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    96
    Andrebbe bene se non fosse che non per forza l'item ha come text il nome dell'eseguibile

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Gian01
    Andrebbe bene se non fosse che non per forza l'item ha come text il nome dell'eseguibile
    Andrebbe meglio se tu chiarissi tutto sin dall'inizio ...

    Avevi scritto

    "Mettiamo che abbia caricato Prog.exe"

    non che ci poteva essere altro.

    Quindi, cosa c'è ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da Gian01
    Andrebbe bene se non fosse che non per forza l'item ha come text il nome dell'eseguibile
    Guarda che l'hai scritto TU!
    Originariamente inviato da Gian01
    Io ho fatto caricare in una listbox tutti i file .exe di una cartella
    Ma lo leggi quello che scrivi prima di inviarlo ???

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    96
    A scusa io carico nella listbox dei file ni quali ê contenuto il percorso di quello da eseguire

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Continuo a non capire, anzi capisco meno.

    Magari se scrivessi qualcosa in più e un po' più chiaramente, si potrebbe cominciare a capire ...

    Tagliamo la testa al toro e fai un esempio pratico ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Originariamente inviato da Gian01
    Andrebbe bene se non fosse che non per forza l'item ha come text il nome dell'eseguibile
    Infatti a quanto pare dovevi cliccare te sull'elemento contenente il programma.

    Come già consigliato, è fondamentale attuare uno stile di programmazione difensiva:

    - controllo se l'input è un percorso valido (opzionale)

    - controllo dell'esistenza del file

    - controllo del tipo di file (eseguibile o no)

    - inserimento di un sistema di exception-handling mediante il costrutto Try-catch per eventuali errori riscontrati.


    Se i primi 3 criteri sono rispettati, puoi eseguire il programma.
    In realtà - nella fattispecie - il primo criterio può essere omesso: se l'input è il seguente "A:1324" chiaramente non è un path valido, per cui anche il secondo criterio risulterà false; se il secondo criterio è true, lo sarà necessariamente anche il primo.

    Mi auguro una risposta congrua e completa da parte tua.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    96
    Ho fatto così:
    codice:
    Dim sr As StreamReader
    Dim nomefile As String = ListBox1.SelectedItem.ToString
    
    Try
    sr = New StreamReader("DATA\ProgS\" & nomefile & ".ini") 
    programma.Text = sr.ReadToEnd() 
    Catch 
    Finally 
    End Try 
    If My.Computer.FileSystem.FileExists(programma.Text) = True Then
                Shell(programma.Text)
            Else
                MsgBox("Il programma non esiste!")
            End If

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    E tutta la faccenda dei file .ini nella cartella DATA\ProgS\ ce la dovevamo inventare noi?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.