Fecha actual Mar Jul 01, 2025 2:08 pm

Todos los horarios son UTC + 1 hora [ DST ]




Nuevo tema Responder al tema  [ 7 mensajes ] 
Autor Mensaje
NotaPublicado: Mar May 16, 2006 1:08 pm 

Registrado: Jue Nov 03, 2005 7:20 pm
Mensajes: 132
Ubicación: Teruel(España)
Alguien me puede ayudar con la instruccion Winexec, estoy haciendo un menu para cd con c3, que ya tenia hecho en Vb 6.0 y la instruccions Shell que funcionaba perfectamente.
El menu debe llamar a programas segun pulsamos en desplegables y botones, pero unos funcionan y otros no sin dar ningun error y desconozco la forma de capturarlo.

Este el un TComboBOX que permite seleccionar un navegador, funciona bien:
METHOD NavegaOnChange( oSender ) CLASS TForm1
local vnavega, elbrowser

vnavega := ""
elbrowser := ""

DO CASE
Case ::Navega:ItemIndex = 1
vnavega := "Internet Explorer versión 5.5"
elbrowser := ".\IEXPLORER55\IE5SETUP.EXE"
Case ::Navega:ItemIndex = 2
vnavega := "Internet Explorer versión 6.0"
elbrowser := ".\IEXPLORER6\IEXPLORER6\IE6SETUP.EXE"
Case ::Navega:ItemIndex = 3
vnavega := "Navegador Firefox 1.0"
elbrowser := ".\firefox\setup.EXE"
Case ::Navega:ItemIndex = 4
vnavega := "Netscape Comunicator versión 4.7"
elbrowser := ".\Netscape47\Setup.exe"
Case ::Navega:ItemIndex = 5
vnavega := "Netscape Comunicator versión 7.0"
elbrowser := ".\Netscape7\NSSetup.exe"
EndCase
If MESSAGEDLG("¿Desea instalar el navegador " + vnavega + "?", mtConfirmation, mbOkCancel) = mrOk
WINEXEC(elbrowser)
End If

return

Este otro es un Tspeedbuton y no funciona
METHOD CsbWinOnclick( oSender ) CLASS TForm1
WINEXEC( ".\CsbWIN\CsbWin.EXE")
return

CsbWin.exe es un instalador de 3.5 Mb

Saludos


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Mar May 16, 2006 3:30 pm 
Avatar de Usuario

Registrado: Vie Oct 14, 2005 12:50 pm
Mensajes: 78
Ubicación: Girona
Amable,


Yo lo estoy utilizando y funciona perfectamente.

Lo mas seguro es que no estás situado en la carpeta adecuada.
Escribe TODA la ruta, verás como te funciona.

WINEXEC( "C:\MiCarpetaEjecutables\CsbWIN\CsbWin.EXE")

_________________
Un Saludo,
Xevi.


Arriba
 Perfil  
Responder citando  
 Asunto: Winexec
NotaPublicado: Mar May 16, 2006 4:27 pm 

Registrado: Jue Nov 03, 2005 7:20 pm
Mensajes: 132
Ubicación: Teruel(España)
Gracias Xevi
No es por el path, debe ser el propio ejecutable, pero no se que es.

Con el path como lo tengo .\CsbWIN\CsbWin.EXE funciona en cualquier unicad, sea CD o disco duro.
Los programas de instalacion de navegadores funcionan perfectamente
Por internet no se habla muy bien de winexec y ofrecen el Shellejecute pero C3 no lo reconoce, ¿Delfhi?


Arriba
 Perfil  
Responder citando  
 Asunto: Winexe
NotaPublicado: Mar May 16, 2006 4:36 pm 

Registrado: Jue Nov 03, 2005 7:20 pm
Mensajes: 132
Ubicación: Teruel(España)
Se me ha ocurrido ver los procesos y el programa CsbWin.EXE se queda como un proceso sin aparecer como aplicacion.
Estoy utilizando XP pro SP2, aunque con 2000 hace lo mismo.


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Mar May 16, 2006 5:06 pm 
Site Admin
Avatar de Usuario

Registrado: Jue Oct 06, 2005 10:49 pm
Mensajes: 655
Ubicación: España - Salamanca
Amable,

Aunque la función se llame WinExec, no se corresponde con la del API de Windows WinExec ya que sólo está disponible en 16 bits. Realmente hace una llamada a CreateProcess. Si me envías por email el ejecutable que no te lanza te puedo decir el motivo.

_________________
Un saludo,
Bruno Cantero
www.c3compiler.com


Arriba
 Perfil  
Responder citando  
 Asunto: winexec
NotaPublicado: Mar May 16, 2006 5:43 pm 

Registrado: Jue Nov 03, 2005 7:20 pm
Mensajes: 132
Ubicación: Teruel(España)
He seguido probando y poniendo el parametro 1 funciona, ?¿?¿
WINEXEC(".\CsbWIN\CsbWin.EXE",1)

Los parametros de Winexec original son:
0 - no se muestra (se ejecuta, pero no se hace visible)
1 - la Ventana se Muestra Normal
2 - minimizado
3 - Maximizado
4 - Tamaño Normal, pero no le entrega el Foco al Programa/Comando que se ejecuta

Un saludo a todos


Arriba
 Perfil  
Responder citando  
 Asunto:
NotaPublicado: Mié May 17, 2006 8:52 am 
Site Admin
Avatar de Usuario

Registrado: Jue Oct 06, 2005 10:49 pm
Mensajes: 655
Ubicación: España - Salamanca
Amable,

Claro, eso es lo que te pasa, si no usas el segundo parámetro, por defecto es 0 (SW_HIDE) y se muestra en modo oculto. No te ocurría con los navegadores porque imagino que por temas de seguridad al arrancarlos en modo oculto ellos mismos se hacen visibles. Te describo la función:

WinExec( cEjecutable, nShow, lWait )

Si especificas .T. para el tercer parámetro fuerzas a que tu aplicación espere a que termine la que has lanzado. Para el segundo parámetro puedes usar estas constantes: SW_HIDE, SW_SHOWNORMAL, SW_NORMAL, SW_SHOWMINIMIZED, SW_SHOWMAXIMIZED, SW_MAXIMIZE, SW_SHOWNOACTIVATE, SW_SHOW, SW_MINIMIZE, SW_SHOWMINNOACTIVE, SW_SHOWNA y SW_RESTORE. Sus valores los tienes en el archivo Windows.ch del directorio include.

La función te devuelve .T. si lanzó la aplicación o .F. si hubo algún error.

_________________
Un saludo,
Bruno Cantero
www.c3compiler.com


Arriba
 Perfil  
Responder citando  
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 7 mensajes ] 

Todos los horarios son UTC + 1 hora [ DST ]


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Buscar:
Saltar a:  
cron