Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

[VB.NET] Come faccio a far avviare un eseguibile?

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

[VB.NET] Come faccio a far avviare un eseguibile?

Messaggioda white_knight86 » lun feb 26, 2007 10:25 am

Ciao a tutti, come faccio ad avviare un eseguibile da codice Visual Basic.NET?
Scheda Madre: ASUS P5QL-E Processore: E7300 a 2.66 GHZ Memoria Ram: 4 Gb da 800 Mhz
Scheda video: Sapphire HD 5770 con 1Gb di Ram
Avatar utente
white_knight86
Senior Member
Senior Member
 
Messaggi: 268
Iscritto il: gio mar 11, 2004 6:24 pm

Messaggioda M@ttia » lun feb 26, 2007 12:52 pm

Ciao, di VB.NET non conosco la sintassi perché non l'ho mai upgradato (sono passato al C++), ma in VB6 (la versione subito prima al .net) la sintassi era:

Codice: Seleziona tutto
a = Shell("C:\Programmi\Programma.exe", vbNormalFocus)
</IE><FIREFOX>
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero

Messaggioda white_knight86 » mar feb 27, 2007 9:51 am

ok grazie [^] , la a è un dato di tipo object? [uhm]
Scheda Madre: ASUS P5QL-E Processore: E7300 a 2.66 GHZ Memoria Ram: 4 Gb da 800 Mhz
Scheda video: Sapphire HD 5770 con 1Gb di Ram
Avatar utente
white_knight86
Senior Member
Senior Member
 
Messaggi: 268
Iscritto il: gio mar 11, 2004 6:24 pm


Messaggioda Zane » mar feb 27, 2007 11:39 am

Ciao, non è indispensabile assegnare ad una variabile il dato ritornato da Shell(), ma devi comunque accertarti di gestire l'eccezione "programma non trovato: ti allego un pezzo di codice di un mio programma

Codice: Seleziona tutto
    Public Sub send_manext()
        'Esegue il programma esterno per inviare il file alla cassa
        Try
            Shell(App_Path() & "\Invia manext.sid alla cassa.bat", AppWinStyle.NormalFocus, False)
        Catch ex As Exception
            Dim frase As String = "Attenzione, file 'Invia manext.sid alla cassa.bat' non trovato. " & _
            "Questo file deve essere contenuto nella cartella di zCasse e incorporare le chiamate ai " & _
            "programmi Unigalaxy da lanciare per spedire manext.sid alle casse."
            MsgBox(frase, MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly, "Impossibile proseguire")
        End Try

    End Sub
Avatar utente
Zane
MLI Hero
MLI Hero
 
Messaggi: 7935
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda white_knight86 » mer feb 28, 2007 11:48 am

ok ho gestito l'eccezione [^] , ma ho notato che riesce solo ad aprirmi file .exe e non .bat, .txt ecc.. perché provando con queste estensioni l'eccezione mi genera sempre il msgbox con scritto file non trovato.. non so perché... [uhm]
Scheda Madre: ASUS P5QL-E Processore: E7300 a 2.66 GHZ Memoria Ram: 4 Gb da 800 Mhz
Scheda video: Sapphire HD 5770 con 1Gb di Ram
Avatar utente
white_knight86
Senior Member
Senior Member
 
Messaggi: 268
Iscritto il: gio mar 11, 2004 6:24 pm

Messaggioda Zane » mer feb 28, 2007 12:34 pm

Mi sembra davvero strano: sotto Windows XP almeno, utilizzando il comando proposto nell'esempio (che ti riporto di seguito in forma semplificata) funziona sicuramente

Codice: Seleziona tutto
Shell("c:\mieibat\Invia alla cassa.bat", AppWinStyle.NormalFocus, False)
Avatar utente
Zane
MLI Hero
MLI Hero
 
Messaggi: 7935
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda Silver Black » mer feb 28, 2007 12:35 pm

white_knight86 ha scritto:ok ho gestito l'eccezione [^] , ma ho notato che riesce solo ad aprirmi file .exe e non .bat, .txt ecc.. perché provando con queste estensioni l'eccezione mi genera sempre il msgbox con scritto file non trovato.. non so perché... [uhm]


Certo, perché Shell avvia ESEGUIBILI, non può avviare documenti (txt, png, bmp, wav, mp3, wmf, doc, ppt, ecc. ecc.) o batch. Per questi devi cercare e avviare l'applicazione selezionata (guardando nel registro) e passarle come parametro il documento da aprire.
Sergio Pappalardo aka Silver Black
https://www.silvercybertech.com
Avatar utente
Silver Black
Silver Member
Silver Member
 
Messaggi: 1148
Iscritto il: gio gen 06, 2005 8:50 pm
Località: Italia

Messaggioda white_knight86 » mer feb 28, 2007 1:19 pm

ok [^] grazie per l'aiuto ragazzi [:)]
Scheda Madre: ASUS P5QL-E Processore: E7300 a 2.66 GHZ Memoria Ram: 4 Gb da 800 Mhz
Scheda video: Sapphire HD 5770 con 1Gb di Ram
Avatar utente
white_knight86
Senior Member
Senior Member
 
Messaggi: 268
Iscritto il: gio mar 11, 2004 6:24 pm

Messaggioda Zane » mer feb 28, 2007 3:27 pm

Silver Black ha scritto:non può avviare documenti (txt, png, bmp, wav, mp3, wmf, doc, ppt, ecc. ecc.) o batch.

Silver, ti assicuro che lancia anche .bat: la linea di codice che ho proposto poco sopra viene realmente utilizzata in un programma, funzionante, da me realizzato. [:)]
Avatar utente
Zane
MLI Hero
MLI Hero
 
Messaggi: 7935
Iscritto il: lun ago 05, 2002 9:36 am
Località: Ferrara

Messaggioda Silver Black » mer feb 28, 2007 3:45 pm

Zane ha scritto:
Silver Black ha scritto:non può avviare documenti (txt, png, bmp, wav, mp3, wmf, doc, ppt, ecc. ecc.) o batch.

Silver, ti assicuro che lancia anche .bat: la linea di codice che ho proposto poco sopra viene realmente utilizzata in un programma, funzionante, da me realizzato. [:)]


Shell lancia anche file .bat, giusto! [^]

Anch'io infatti l'ho spesso usata per lanciarne. Mi ero lasciato prendere un po' la mano fidandomi di quanto aveva detto chi aveva iniziato il thread, inoltre, poi, siccome attualmente non uso più Shell ma CreateProcess magari con la WaitForSingleObject per attendere la fine dell'esecuzione e questa non lancia i file bat, che bisogna lanciare con il programma START, mi ero confuso.
Sergio Pappalardo aka Silver Black
https://www.silvercybertech.com
Avatar utente
Silver Black
Silver Member
Silver Member
 
Messaggi: 1148
Iscritto il: gio gen 06, 2005 8:50 pm
Località: Italia


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising