Programación General > Visual Basic 6.0 e inferiores

 Ejecutar Cualquier Cosa

(1/1)

abelsql3000:
Hola amigos
un saludo especial a F.taroni
Bueno aqui de nuevo con esta inquietud he encontrado un codigo en la red que dice que ejecuta de todo, lo he probado y nada que ver me dice "error 53 no encuentra el archivo"
Y este es su publicacion
Con start se pueden ejecutar aplicaciones desde la línea de comando... y si se pueden ejecutar aplicaciones... ¿se podrán ejecutar accesos directos? PUES SI !
Y no sólo accesos directos, sino TODO lo que le eches: archivos de cualquier extensión; el START se encarga de llamar a la aplicación correspondiente... lo que uno se ha complicado haciendo DDE y todo el rollo para esta tarea tan fácil!
¿Cómo se hace?
Dim ret As Long
ret = Shell("start " & sFile)
'Si Quieres que no se muestre la ventana:
ret = Shell("start " & sFile, 6)
sFile será "lo que queramos" ejecutar. CUALQUIER COSA!

Esta es la prueba que NO me salio , lo hice en un boton de comando
Dim ret As Long
Private Sub Command1_Click()
Dim ret As Long
Dim sfile
sfile = "C:\Archivos de programa\MSN Messenger\msnmsgr.exe"
ret = Shell("start" & sfile)
End Sub


Si embargo este SI me Funciono
Private Sub Command1_Click()
Dim ret As Long
Dim sfile
sfile = "C:\Archivos de programa\MSN Messenger\msnmsgr.exe"
ret = Shell(sfile, vbNormalFocus)
End Sub

En que me equivoque en la primera(mensaje color azul)????????????
Gracias atte Abel

F_Tanori:

--- Cita de: "abelsql3000" ---Hola amigos
un saludo especial a F.taroni
--- Fin de la cita ---

F_Tanori :P, Gracias

la verdad es que hace tiempo cuando iniciaba con vb vi un codigo como ese en la pagina de el guille ( lo mejor en aquellos tiempos :P ) pero ese codigo no me funciono nunca


lo mejor es usar la funcion ( API ) ShellExecute  hay muchas respuestas en el foro



--- Código: Text ---Option ExplicitPrivate 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 LongPrivate Const SHOWNORMAL = 1 Private Sub Command1_Click()  Dim bAutoEjecutable As Boolean  Dim Archivo, Ext    Archivo = Me.Text1 '"C:\Archivos de programa\MSN Messenger\msnmsgr.exe"  Ext = UCase(Right(Archivo, 3))  bAutoEjecutable = InStr(Environ("PATHEXT"), Ext) > 0    If bAutoEjecutable Then    Shell Archivo, vbNormalFocus  Else     ShellExecute Me.hwnd, "Open", Archivo, &O0, &O0, SHOWNORMAL  End If  End Sub  
Saludos

Nebire:
te sobra eso de ..start... ya que le estás indicando que la ruta es: 'startC:\Archivos de programa\MSN Messenger\msnmsgr.exe' es decir has concatenado 2 cadenas, y el intérprete es incapaz de encontrar un archivo ccuya ruta sea ese texto.

Si al menos start fuera una variable cuyo contenido fuera una carpeta y con sfile apuntarías a diferentes archivos en una rutina al caso...

 El código sería éste:


--- Código: Text --- Private Sub Command1_Click()      Dim ret As DOUBLE  'no [U]Long[/U]      Dim sfile as string       sfile = "C:\Archivos de programa\MSN Messenger\msnmsgr.exe"      ret = Shell(sfile)End Sub  
la estrucutura de shell es shell(rutaAlPrograma, estiloVentana) cuando pongas la coma, vb6 ya te propone el modo... de ventana

Navegación

[0] Índice de Mensajes

Ir a la versión completa