• Viernes 19 de Abril de 2024, 10:41

Autor Tema:  Ejecutar Cualquier Cosa  (Leído 1689 veces)

abelsql3000

  • Miembro activo
  • **
  • Mensajes: 76
    • Ver Perfil
Ejecutar Cualquier Cosa
« en: Viernes 21 de Septiembre de 2007, 21:03 »
0
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

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Ejecutar Cualquier Cosa
« Respuesta #1 en: Viernes 21 de Septiembre de 2007, 22:09 »
0
Cita de: "abelsql3000"
Hola amigos
un saludo especial a F.taroni

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
  1. Option Explicit
  2. 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
  3. Private Const SHOWNORMAL = 1
  4.  
  5. Private Sub Command1_Click()
  6.   Dim bAutoEjecutable As Boolean
  7.   Dim Archivo, Ext
  8.  
  9.   Archivo = Me.Text1 '"C:\Archivos de programa\MSN Messenger\msnmsgr.exe"
  10.   Ext = UCase(Right(Archivo, 3))
  11.   bAutoEjecutable = InStr(Environ("PATHEXT"), Ext) > 0
  12.  
  13.   If bAutoEjecutable Then
  14.     Shell Archivo, vbNormalFocus
  15.   Else
  16.      ShellExecute Me.hwnd, "Open", Archivo, &O0, &O0, SHOWNORMAL
  17.   End If
  18.  
  19. End Sub
  20.  
  21.  

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

Nebire

  • Miembro HIPER activo
  • ****
  • Mensajes: 670
    • Ver Perfil
Re: Ejecutar Cualquier Cosa
« Respuesta #2 en: Viernes 21 de Septiembre de 2007, 22:57 »
0
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
  1.  
  2. Private Sub Command1_Click()
  3.       Dim ret As DOUBLE  'no [U]Long[/U]
  4.       Dim sfile as string
  5.  
  6.       sfile = "C:\Archivos de programa\MSN Messenger\msnmsgr.exe"
  7.       ret = Shell(sfile)
  8. End Sub
  9.  
  10.  

la estrucutura de shell es shell(rutaAlPrograma, estiloVentana) cuando pongas la coma, vb6 ya te propone el modo... de ventana
«Ma non troppo»
----> ModoVacaciones = False<----