Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Come far eseguire un file .bat o .cmd da una finestra in vb
Forum - Visual Basic 6 - Come far eseguire un file .bat o .cmd da una finestra in vb

Avatar
88davide88 (Normal User)
Newbie


Messaggi: 5
Iscritto: 13/03/2013

Segnala al moderatore
Postato alle 10:56
Mercoledì, 13/03/2013
Buongiorno a tutti,

ho una finestra in visual basic che praticamente appare ad un utente, questo utente può cliccare solo su installa e una volta cliccato dovrebbe far partire il programma bat legato al click del mouse su installa.
Il codice della finestra è questo:

Codice sorgente - presumibilmente VB.NET

  1. Public Class progetto
  2.  
  3.  
  4.     Private Sub OK_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles OK.Click
  5.        
  6.         Shell("D:\Progetto.bat", vbNormalNoFocus, , True)
  7.  
  8.         Me.Close()
  9.  
  10.     End Sub
  11.  
  12.  
  13. End Class




però mi da errore e non va ma non so perchè.
Eventualmente tutti i comandi che ci sono nel bat si possono mettere in vb così evito di richiamare il file bat?

PM Quote
Avatar
ampeg (Normal User)
Pro


Messaggi: 124
Iscritto: 21/04/2011

Segnala al moderatore
Postato alle 13:12
Mercoledì, 13/03/2013
trattasi di vb.net e non vb6

comunque....

Testo quotato


però mi da errore e non va ma non so perchè.



se non posti l'errore sarà difficile che qualcuno possa aiutarti

Testo quotato


Eventualmente tutti i comandi che ci sono nel bat si possono mettere in vb così evito di richiamare il file bat?



eventualmente si, ma se non posti il contenuto del file bat non lo sapremo mai

PM Quote
Avatar
88davide88 (Normal User)
Newbie


Messaggi: 5
Iscritto: 13/03/2013

Segnala al moderatore
Postato alle 14:18
Mercoledì, 13/03/2013
errore risolto spostando il file vb nella stessa cartella di dove è presente il bat anche se secondo me non è necessario dato che io do il percorso di dove prendere il bat.
I comandi del bat sono:

Codice sorgente - presumibilmente Visual Basic 6

  1. rmdir /S /Q d:Temp
  2. sleep 5
  3. robocopy.exe "Applicativi" "D:\Temp" /move /e
  4. attrib +h  "D:\Temp"
  5. Sleep 5
  6. msiexec /x {9DF9624D-C7C7-2BDA-0324-37997B76BFD4} /q REBOOT=ReallySuppress
  7. sleep 5
  8. TASKKILL /F /IM "Google Chrome.exe" /T
  9. sleep 2
  10. TASKKILL /F /IM "Microsoft Excel 2010.exe" /T
  11. sleep 2
  12. rmdir /S /Q "D:\Google Chrome\Sandboxes"
  13. sleep 2
  14. SET TEMP=D:\TempThinapp
  15. sleep 5
  16. SET TMP=D:\TempThinapp
  17. sleep 5
  18. msiexec /i "D:\Temp - Windows Internet Explorer 8 ITA.msi" INSTALLDIR="d:\applicativi "
  19. sleep 5




comandi di questo tipo.
Si può?

PM Quote
Avatar
ampeg (Normal User)
Pro


Messaggi: 124
Iscritto: 21/04/2011

Segnala al moderatore
Postato alle 8:34
Giovedì, 14/03/2013
sono normali comandi DOS le cui azioni possono essere riprodotte facilmente da codice

cercati su google cosa fa ognuno dei comandi con le relative opzioni e come poterli replicare in VB

oppure guarda qua
http://pcsupport.about.com/od/commandlinereference/tp/comm ...

oppure la via più semplice sarebbe creare il file bat a runtime scrivendoci dentro la stringa con i comandi e lanciarlo

una cosa... il comando "sleep" è stato sostituito dal comando "timeout" a partire da Vista

Ultima modifica effettuata da ampeg il 14/03/2013 alle 8:48
PM Quote
Avatar
88davide88 (Normal User)
Newbie


Messaggi: 5
Iscritto: 13/03/2013

Segnala al moderatore
Postato alle 8:56
Giovedì, 14/03/2013
Ma io so esattamente cosa fanno questi comandi in DOS, li ho scritti io e funzionano tutti, solo che non so come scriverli in VB, non so "convertirli" in VB per questo che chiedevo.
I pc su cui devo lanciarli sono tutti XP quindi penso che vada bene sleep, confermi ?

PM Quote
Avatar
ampeg (Normal User)
Pro


Messaggi: 124
Iscritto: 21/04/2011

Segnala al moderatore
Postato alle 12:04
Giovedì, 14/03/2013

Ultima modifica effettuata da ampeg il 14/03/2013 alle 12:19
PM Quote
Avatar
88davide88 (Normal User)
Newbie


Messaggi: 5
Iscritto: 13/03/2013

Segnala al moderatore
Postato alle 10:05
Venerdì, 15/03/2013
Ho avuto qualche problema con il msiexec poichè mi chiede di eseguire il programma, invece a me serve che lo faccia in modo silente, non deve interagire con l'utente (specifico: i file che devo lancire sono .msi) e poi avrei bisogno che si installassero in una cartella che dico io, non quella che c'è di default nell' msi.
Ho anche un problema con il taskkill perchè praticamente non killa i processi che mi servono.

Comunque grazie per le risposte.
Mi sei stato utilissimo :k::k:

PM Quote
Avatar
88davide88 (Normal User)
Newbie


Messaggi: 5
Iscritto: 13/03/2013

Segnala al moderatore
Postato alle 10:05
Venerdì, 15/03/2013
Ho avuto qualche problema con il msiexec poichè mi chiede di eseguire il programma, invece a me serve che lo faccia in modo silente, non deve interagire con l'utente (specifico: i file che devo lancire sono .msi) e poi avrei bisogno che si installassero in una cartella che dico io, non quella che c'è di default nell' msi.
Ho anche un problema con il taskkill perchè praticamente non killa i processi che mi servono.

Comunque grazie per le risposte.
Mi sei stato utilissimo :k::k:

PM Quote