Foros - Stratos

Stratos => General => Mensaje iniciado por: sebastianarroyo en 14 de Septiembre de 2006, 04:38:23 PM

Título: comando SHELL en visual basic
Publicado por: sebastianarroyo en 14 de Septiembre de 2006, 04:38:23 PM
hola, me encuentro con un problema.
Realize una aplicacion que utiliza un programa exe externo.
El problema es que no se porque dejo de funcionar todo lo referido a SHELL en la aplicacion o en alguna nueva que intente hacer.
el error es este:
Llamada a procedimiento o argumento no validos

esta es la llamada:
Shell "c:\Sound Media\sndvol32.exe"

Gracias a quien me pueda ayudar!
Sebastian
Título: comando SHELL en visual basic
Publicado por: vincent en 14 de Septiembre de 2006, 04:45:18 PM
Ni idea de VB, pero en general, el tema de las contrabarras suele dar pol saco...
Título: comando SHELL en visual basic
Publicado por: bnl en 14 de Septiembre de 2006, 05:46:55 PM
quiza sea por el espacio de "sound media".
quiza debas poner el nombre de MS-DOS con el tipico ~

No se si sera eso.
Título: comando SHELL en visual basic
Publicado por: [EX3] en 14 de Septiembre de 2006, 08:27:28 PM
Los espacios no son problema para la instruccion Shell de VB ni tampoco la del API de Windows al menos en los 6 años que llevo programando en VB 6.0. He probado con esta ruta que tambien tiene espacios y me ha funcionado correctamente:
Shell "D:\Archivos de programa\Microsoft DirectX SDK (August 2006)\Utilities\Bin\x86\DXCapsViewer.exe"

Ademas, el error 5 no es señal de que la ruta no exista, en todo caso saltaria el error 53 (archivo no encontrado) o el error 76 (ruta no valida o no existe). Revisa tu codigo por que dicho error te lo provocara otra instruccion.

Salu2...
Título: comando SHELL en visual basic
Publicado por: Astaroth en 15 de Septiembre de 2006, 10:07:35 PM
Pués si que es raro.

Prueba esto:

Dim InutilVar
InutilVar = Shell("c:\Sound Media\sndvol32.exe",1)

Si no te va, prueba con la API:

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

Dim InutilVar as Long
InutilVar = ShellExecute(0&, "open", "c:\Sound Media\sndvol32.exe", 0&, vbNullString, SW_NORMAL)

Funciona?