Hola,
Hay alguna forma de saber si un programa esta en el path del sistema utilizando visual basic?
Tambien tengo esta otra duda:
Necesito lanzar un .bat en VB que a su vez lanza un programa. Hay alguna forma de saber si la ejecucion del script fue satisfactoria, es decir si el programa su pudo ejecutar?
Gracias y Saludos
Podrías utilizar este código:
On Error GoTo Fallo
Dim RutaSistema As String
RutaSistema = Environ("WINDIR") & "\System32"
If GetAttr(RutaSistema & "\ARCHIVO.exe") Then MsgBox "SI"
Fallo:
MsgBox "NO"
o algo asi con api:
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long
Private Sub Form_Load()
Dim sSave As String, Ret As Long
sSave = Space(255)
Ret = GetSystemDirectory(sSave, 255)
sSave = Left$(sSave, Ret)
MsgBox ExisteArchivo(sSave & "\calc.exe")
End Sub
Private Function ExisteArchivo(sNombreArchivo As String) As Boolean
Dim AttrDev%
On Error Resume Next
AttrDev = GetAttr(sNombreArchivo)
If Err.Number Then
Err.Clear
ExisteArchivo = False
Else
ExisteArchivo = True
End If
End Function
saludos.
Otra forma:
Option Explicit
Private Sub CmdComprobar_Click()
Dim sPathArchivo As String
sPathArchivo = Environ("WINDIR") & "\System32\" & TextArchivo.Text
MsgBox IIf(ExisteArchivo(sPathArchivo) = True, "¡El archivo existe!", _
"¡El archivo NO existe!")
End Sub
Public Function ExisteArchivo(sArchivo As String) As Boolean
ExisteArchivo = IIf(Dir$(sArchivo) = "", False, True)
'Devolverá false, si Dir$ no encuentra un archivo con el mismo nombre de la _
variable "sArchivo"
End Function
La verdad hay muchas, será cuestion de gustos...
¡Saludos!
perfecto, gracias a los 3! :)