Visual Basic - error 432 al abrir ejecutable

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 27
Ha disminuido su posición en 3 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

error 432 al abrir ejecutable

Publicado por Enrique (8 intervenciones) el 03/10/2020 19:35:26
Buenos días amigos.
Quisiera que un alma caritativa diera respuesta a mi problema, paso a exponerlo.
El ejecutable de mi proyecto comporta varios botones y entre ellos uno que al activarlo abre sin problemas un
fichero word pero al abrirlo genera al mismo tiempo un error 432 que se ve en pantalla y que al tratar de eliminarlo cierra el ejecutable con lo que se tiene que relanzar para poder seguir con lo que el ejecutable realiza.
Lo mas curioso es que esto no ocurre al correr el proyecto desde VB6. El command del botón es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Command10_Click()
 
  Dim WB As Object
  Dim sPath As String
  Set WB = CreateObject("Word.Basic")
  ' wb.ChDefaultDir "C:\", 0
  sPath = App.Path
  WB.ChDefaultDir sPath, 0 ' Si el doc está en el directorio de la aplicación
  WB.FileOpen Name:="C:\Instructions-rech.doc"
  WB.AppShow
  Application.WindowState = wdWindowStateMaximize
 
End Sub

Esta manera de programar el command la copie de una sugerencia de esta web y ciertamente funciona ejecutando la fuente en VB6 pero no el exe una vez compilado, el exe funciona bien si no se utiliza el botón
que abre el word pero una vez abierto aparece el error que indico y todo se viene abajo.
Mil gracias por una respuesta.
Enrique
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
Imágen de perfil de Rafael Reyes
Val: 30
Ha aumentado su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Abrir Ejecutable

Publicado por Rafael Reyes (8 intervenciones) el 04/10/2020 18:13:14
Con esta api funciona, 100%

1
2
3
4
5
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
 
ShellExecute 0, vbNullString, App.Path & "\ARCHIVO.EXE", vbNullString, vbNullString, vbNormalFocus[
 
ShellExecute 0, vbNullString, "RUTADELATCHIVO.EXE", vbNullString, vbNullString, vbNormalFocus[

Espero haber ayudado; prueba y me avisas cualquier cosa.
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
sin imagen de perfil
Val: 27
Ha disminuido su posición en 3 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Abrir Ejecutable

Publicado por Enrique Coloma (8 intervenciones) el 04/10/2020 19:08:03
Querido Rafael,
gracias por tu pronta respuesta pero debo confesarte que mis conocimientos de programación son bastante limitados, soy una persona ya muy mayor que se inicio en los 80 en el Basic y que ahora ya jubilado y queriendo hacer pinitos con VB6 me encuentro con unas carencias bastante graves.
Por esto te indico que he tratado de incorporar tu respuesta en el interior del Private Sub Command y no funciono, debo decirte que he leído algo sobre api pero no he utilizado jamas una por lo que no se donde y como emplazarlo en mi proyecto.
Siento darte estas molestias pero te agradecería me ayudaras y orientaras para solucionar mi problema.
Imagino que tienes mi correo personal por si quisieras darme respuesta por esa vía.
Dándote las gracias anticipadas te envío un cordial saludo.
Enrique
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
Imágen de perfil de Rafael Reyes
Val: 30
Ha aumentado su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Abrir Ejecutable

Publicado por Rafael Reyes (8 intervenciones) el 04/10/2020 19:39:37
La función la declaras fuera del Private Sub Command

Coloca la primera línea al inicio del código del formulario

La primera línea del código.

Me cuentas cómo te fue.
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
sin imagen de perfil
Val: 27
Ha disminuido su posición en 3 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Abrir Ejecutable

Publicado por Enrique Coloma (8 intervenciones) el 04/10/2020 20:22:29
He colocado la función al inicio del proyecto y las otras dos lineas como te muestro:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Command10_Click()
  ShellExecute 0, vbNullString, App.Path & "\FWH (ENG) Rev.32.EXE", vbNullString, vbNullString, vbNormalFocus
 
  ShellExecute 0, vbNullString, "C:\FWH (ENG) Rev.32.EXE", vbNullString, vbNullString, vbNormalFocus
 
  Dim WB As Object
  Dim sPath As String
  Set WB = CreateObject("Word.Basic")
  ' wb.ChDefaultDir "C:\", 0
  sPath = App.Path
  WB.ChDefaultDir sPath, 0 ' Si el doc está en el directorio de la aplicación
  WB.FileOpen Name:="C:\Instructions-rech.doc"
  WB.AppShow
  Application.WindowState = wdWindowStateMaximize
 
End Sub

pero la cosa se ha empeorado, ahora el ejecutable se ejecuta varias veces y una de ellas acompañada del error 432.

Siento mucho darte el rollo con este problema pero si pudieras corregirme te lo agradecería.
Saludos
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
Imágen de perfil de Rafael Reyes
Val: 30
Ha aumentado su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Abrir Ejecutable

Publicado por Rafael Reyes (8 intervenciones) el 04/10/2020 20:27:09
Estás colocando tu código más el que te envíe.

Solo deja esa en el command y prueba.

1
2
3
4
5
Private Sub Command10_Click()
 
ShellExecute 0, vbNullString, App.Path & "\FWH (ENG) Rev.32.EXE", vbNullString, vbNullString, vbNormalFocus
 
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
sin imagen de perfil
Val: 27
Ha disminuido su posición en 3 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Abrir Ejecutable

Publicado por Enrique Coloma (8 intervenciones) el 04/10/2020 20:43:52
Pues lo siento pero ahora peor, al limpiar todo ahora al pulsar el boton no abre el word que es la funcion del boton del command de mi codigo y por contra activa de nuevo el exe cargandalo dos veces.
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
Imágen de perfil de Rafael Reyes
Val: 30
Ha aumentado su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Abrir Ejecutable

Publicado por Rafael Reyes (8 intervenciones) el 04/10/2020 23:33:53
Coloca solo estas líneas dentro del botón y debería servir

ShellExecute 0, vbNullString, "C:\Instructions-rech.doc", vbNullString, vbNullString, vbNormalFocus
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 27
Ha disminuido su posición en 3 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Abrir Ejecutable

Publicado por Enrique Coloma (8 intervenciones) el 05/10/2020 11:37:50
Querido Rafael, FUNCIONA!!!!!
Te agradezco por todo y disculpa por el tiempo que has dedicado.
Te envío un cariñoso saludo.
Enrique
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
Imágen de perfil de Rafael
Val: 30
Ha aumentado su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Abrir Ejecutable

Publicado por Rafael (8 intervenciones) el 05/10/2020 22:02:37
Un gusto haber colaborado.


Los conocimientos deben ser compartidos.
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