Salve, il mio problema è il seguente, devo far eseguire ad un programmino una procedura lineare, ovvero, deve eseguire un'applicazione X con comandi testuali (esempio app -x -a) e poi spegnere il pc con lo shutdown.
Allora, sul forum ho trovato l'esempio per far sì che si possa aspettare che l'applicazione X avviata si chiuda, e va bene, solo che a me è capitata un'altra cosa, ovvero l'applicazione X a sua volta avvia un'altra applicazione, javaw.exe, quindi è come se l'applicazione X si chiudesse subito e mi si spegne il computer...
Che modifiche devo fare al codice di seguito per interpellare l'applicazione javaw.exe?
Grazie
Option Explicit
Dim process_id, process_handle
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Const INFINITE = &HFFFF ' Timeout infinito
Public Const SYNCHRONIZE = &H100000
Sub main()
Dim esegui(1) As String
Open App.Path & "\config.ini" For Input As #1
Line Input #1, esegui(0)
Line Input #1, esegui(1)
Close #1
process_id = Shell(esegui(0), vbNormalFocus)
DoEvents
process_handle = OpenProcess(SYNCHRONIZE, 0, process_id)
If process_handle <> 0 Then
WaitForSingleObject process_handle, INFINITE
CloseHandle process_handle
End If
Shell (esegui(1))
End Sub