Ho bisogno di lanciare un applet Java (.jar) alla pressione di un comando. Premetto che il file Jar riesco a farlo partire manualmente ma non con la procedura Shell(JarFileName.jar)...Help ME![]()
Grazie....
Ho bisogno di lanciare un applet Java (.jar) alla pressione di un comando. Premetto che il file Jar riesco a farlo partire manualmente ma non con la procedura Shell(JarFileName.jar)...Help ME![]()
Grazie....
Inserisci in un modulo separato questo codice:
quindi per eseguire il tuo file usacodice:Option Explicit Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Private Const SW_NORMAL = 1 Public Sub ExecFile(ByVal fileName As String) Dim ret As Long ret = ShellExecute(0, "open", fileName, vbNullString, vbNullString, SW_NORMAL) If ret<=32 Then Err.Raise 51, "ExecFile", "Impossibile eseguire il file """ & fileName & """." & vbCrLf & "Codice di errore di ShellExecute: " & LTrim(CStr(ret))+"." End If End Sub
(dove ovviamente al posto di "c:\percorso\nomeFile.jar" metterai il nome e il percorso del file da eseguire).codice:ExecFile "c:\percorso\nomeFile.jar"
Amaro C++, il gusto pieno dell'undefined behavior.
Grazie..
Però se faccio così mi esegue solo il runtime di java (Javaw.exe) e non il mio applet....
Correzione:
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Sub ExecFile(ByVal fileName, Dir As String)
Dim ret As Long
ret = ShellExecute(0, "Open", fileName, vbNullString, Dir, SW_NORMAL)
If ret <= 32 Then
Err.Raise 51, "ExecFile", "Impossibile eseguire il file """ & fileName & """." & vbCrLf & "Codice di errore di ShellExecute: " & LTrim(CStr(ret)) + "."
End If
End Sub
E lo richiamiamo così:
ExecFile "Nome.jar", "Directory"
Grazie per la dritta!