Italian [B4J] Avviare vbs da programma B4J, passandogli parametro

amorosik

Expert
Licensed User
Ho un programma in c# che ad un certo punto avvia questa riga

B4X:
Process.Start("C:\prog_mio\script.vbs", "COMANDI_ADD");

E funziona tutto come desiderato nel senso che viene avviato uno script vbs e gli viene dato come argomento un certo parametro

Sto tentando di replicare il funzionamento di quanto sopra su un programma B4J
Uso il seguente codice

B4X:
Dim VbsShell As Shell
VbsShell.Initialize("VbsEvent", "c:\windows\system32\cscript.exe", Array As String("//nologo", "C:\prog_mio\script.vbs", "COMANDI_ADD"))
VbsShell.WorkingDirectory = dir_prog & "\"
VbsShell.Run(12000)

Ma non funziona come previsto (almeno come previsto da me)
Nel senso che non vedo lo script lanciato in esecuzione
Come mai non parte?
Quali istruzioni in B4J usereste per avviare uno script vbs passandogli un parametro?
 
Last edited:

Nicola Ciaramellano

Member
Licensed User
Longtime User
Ciao,
puoi provare qualcosa del genere:


B4X:
    Dim VbsShell As Shell
    File.WriteString(File.DirData("myapp"), "runme.bat", "c:\windows\system32\cscript.exe C:\prog_mio\script.vbs //nologo  COMANDI_ADD")
    VbsShell.Initialize("VbShell",File.Combine(File.DirData("myapp"), "runme.bat"),Null)
    VbsShell.WorkingDirectory = File.DirData("myapp")
    VbsShell.Run(12000)

L'ho scritto a volo senza testarlo ma dovrebbe andare
 

amorosik

Expert
Licensed User
Molte grazie
Funzionava anche il codice mio, solo che non vedevo niente perche' c'era un piccolo errore nel vbs
Interessante comunque la scrittura per file bat con un sol colpo
 

Nicola Ciaramellano

Member
Licensed User
Longtime User
Molte grazie
Funzionava anche il codice mio, solo che non vedevo niente perche' c'era un piccolo errore nel vbs
Interessante comunque la scrittura per file bat con un sol colpo
Di niente...
Usare un solo file con i vari parametri "cablati" secondo me è utile soprattutto in caso di debug dello script stesso senza scrivere ulteriore codice, ma semplicemente lanciando lo script creato a linea di comando. L'ho usato diverse volte in passato maggiormente sotto Linux dove gli script sono sempre abbastanza complessi.
 
Top