Visual Basic Simple
Eseguire un programma esterno
Sincronizza Indice
Sincronizza Indice
Scarica il progetto
Scarica il progetto
Scarica il testo dell'articolo
Testo dell'articolo
Stampa l'articolo
Stampa l'articolo
Ricerca personalizzata

Richiesta di: Antonio Corrado - 23 Febbraio 2001
Difficoltà: 1 / 5

Vorrei fare in modo che alla pressione di un pulsante venga eseguito un programma .EXE esterno.


L'operazione da svolgere è molto semplice perché Visual Basic provvede nativamente una funzione per richiamare un programma .EXE esterno. La funzione in esame è Shell.

Questo progetto si compone di una TextBox di nome NomeProgramma ed un CommandButtondi nome Esegui, con la proprietà Caption impostata a "Apri il programma indicato".

La casella di testo dovrà contenere il percorso completo del programma da eseguire. Il click sopra il pulsante standard richiamerà la funzione Shell passandole come nome del programma quanto sarà scritto nella casella di testo soprastante.

Il codice si compone di una sola routine:

  1. Option Explicit
  2. Private Sub Esegui_Click()
  3.     Dim Ritorno As Long
  4.     On Error Resume Next
  5.     Ritorno = Shell(NomeProgramma.Text, vbNormalFocus)
  6.     If Ritorno = 0 Then MsgBox "Si è verificato un errore nell'apertura", vbCritical + vbOKOnly, "Errore!"
  7. End Sub

La routine riguarda la pressione del pulsante Esegui.
Alla riga 4 abbiamo dichiarato una variabile di nome Ritorno; essa riporterà il PID (Process IDentifier) del programma eseguito. Esso verrà utilizzato per verificare se il programma è stato aperto correttamente.

Alla riga 5 abbiamo dovuto inserire una funzione di gestione degli errori. Infatti se l'utente immette un nome di programma errato o non esistente viene generato un errore. Così facendo, in caso di errore l'esecuzione salterà alla riga successiva all'errore.

La riga 6 contiene la chiamata alla funzione Shell che richiama un programma esterno. In questo nostro esempio la funzione Shell riceve il testo della proprietà Text della casella di nome NomeProgramma.
Al nome del programma segue una costante indicante il tipo di visualizzazione da effettuare; essa può essere una costante dell'enumerazione VbAppWinstyle ovvero un valore tra i seguenti:

  • vbNormalFocus
    L'applicazione sarà aperta normalmente e sarà mostrata in primo piano.

  • vbNormalNoFocus
    L'applicazione sarà aperta normalmente ma non sarà mostrata in primo piano.

  • vbMinimizedNoFocus
    L'applicazione sarà aperta ma sarà ridotta ad icona nella barra delle applicazioni.

  • vbMaximizedFocus
    L'applicazione sarà aperta in maniera ingrandita e sarà mostrata in primo piano.

  • vbMaximizedNoFocus
    L'applicazione sarà aperta in maniera ingrandita ma non sarà mostrata in primo piano.

  • vbHide
    L'applicazione verrà aperta in maniera nascosta (invisibile) all'utente. Non potrà essere chiusa dall'utente se non mediante l'utilizzo di alcune funzioni API. Non tutti i programmi supportano questo tipo di apertura.

La chiamata alla funzione Shell restituisce un valore diverso da 0 se il programma è stato aperto in maniera corretta, mentre restituisce 0 nel caso si fosse verificato qualche problema nell'apertura.

Pertanto, alla riga 7, viene controllato il valore della variabile Ritorno che ha ricevuto il risultato dalla funzione Shell.
Se il valore contenuto nella variabile Ritorno è uguale a 0 verrà mostrato un messaggio di errore che avverte del problema nell'apertura del programma.

Il progetto termina qui. L'utilizzo è di una semplicità che non richiede spiegazioni.

Tuttavia, questa soluzione provvede soltanto l'apertura di un programma e non la sua chiusura. Questa seconda operazione è molto più complessa e richiede una differente soluzione nell'apertura. L'apertura e la chiusura di un programma saranno trattati in un HowTo.

Fibia FBI
24 Febbraio 2001

Scarica il progetto
Scarica il progetto
Scarica il testo dell'articolo
Scarica il testo dell'articolo
Stampa l'articolo
Stampa l'articolo
Torna all'introduzione delle Richieste dei lettori