Visual Basic - URGENTE AYUDA CON EJECUTABLE

Life is soft - evento anual de software empresarial
 
Vista:

URGENTE AYUDA CON EJECUTABLE

Publicado por VANE (23 intervenciones) el 23/03/2005 02:54:40
Tengo un programa en vb q esta hecho para llamar a un ejecutable, el .exe funciona perfectamente si hago directamente doble click , pero no funciona si lo llamo desde vb..el problema que esta dando es q el .exe debe abrir 2 archivos q se encuentran en la misma carpeta donde esta corriendose el ejecutable y no lo hace......El ejecutable no tiene escrito todo el path de los archivo,solo el nombre y funciona perfecto pero cuando la orden viene de VB el ejecutable no logra abrir estos archivos porq no los encuentra, Quiero saber como solventar esto, ¿ por qué si entiende q los archivos estan en la carpeta donde se esta corriendo el .exe, cuando éste se activa manualmente y no lo entiende cuando es VB el ejecuta el .exe??' Que diferencia puede haber, se supone que el programa en vb sustituye la accion de dar doble click directamente al .exe....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:URGENTE AYUDA CON EJECUTABLE

Publicado por Cecilia Colalongo (3116 intervenciones) el 23/03/2005 11:49:20
Si los llamas con Shell revisa que sea de la forma: App.Path & "\Archivo.exe"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:URGENTE AYUDA CON EJECUTABLE

Publicado por VANE (23 intervenciones) el 23/03/2005 12:52:17
Este es el codigo que uso para llamar al ejecutable programa.exe..

Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Const STILL_ACTIVE = &H103
Const PROCESS_QUERY_INFORMATION = &H400

'Add a Command Button control to Form1. Command1 is created by default.

'Add the following code to the Click event for Command1:
Private Sub Command1_Click()
Dim JobToDo As String
JobToDo = "C:\Programa.exe"
Shell32Bit JobToDo
End Sub

'Create a new subroutine called Shell32Bit. Add the following code to this subroutine:
Sub Shell32Bit(ByVal JobToDo As String)
Dim hProcess As Long
Dim RetVal As Long
'The next line launches JobToDo as icon,
'captures process ID
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, Flase, Shell(JobToDo, 6))
Do
'Get the status of the process
GetExitCodeProcess hProcess, RetVal
'Sleep command recommended as well
'as DoEvents
DoEvents: Sleep 100
'Loop while the process is active
Loop While RetVal = STILL_ACTIVE
MsgBox "Notepad terminated by user"
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar