como hago ejecutar

Iniciado por shadow.darknesses, 14 Enero 2007, 22:47 PM

0 Miembros y 1 Visitante están viendo este tema.

shadow.darknesses

miran yo le coloko
shell "ruta"
pero no me funca como hago pra ejecutar?
gracias Saludos..




CeLaYa

pues yo siempre he usado shell



dim l as long

on local error resume next
l = Shell("c:\..\programa.exe", vbMaximizedFocus)
if err then
     'Si no se puede ejecutar se produce un error
     msgbox Err.Description
end if
On local error goto
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.


~~

Usa la api shell execute y te kitas de lios ;)


CeLaYa

shadow.darknesses la función Shell es solo para archivos ejecutables es decir como los: .exe o .bat, si lo que quires es que el archivo de texto se habra algún editor de texto, entonces coincido con EON en que uses la api ShellExecute.


un ejemplo:

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
Const SW_SHOWNORMAL = 1
Private Sub Form_Load()
    ShellExecute Me.hwnd, vbNullString, "algo.zip", vbNullString, "C:\", SW_SHOWNORMAL
End Sub


esto ejecutará el winzip (en mi caso) y abrirá el archivo "algo.zip"
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

BorecK

#5
Ejecutar y/o abrir archivos o paginas web

Run:

Sirve para ejecutar archivos y abrir paginas web.

Ejemplo:

On Error Resume Next
Set nombre = CreateObject("WScript.Shell")
nombre.Run "C:\muere_perro.txt"


Set nombre sirve para no tener que escribir CreateObject("WScript.Shell") todo el tiempo, es decir que el valor de nombre es de CreateObject("WScript.Shell")

Esto ejecutara el archivo "muere_perro.txt" si este existe en la ruta actual, Si escibes un URL este seria abierto
por el navegador de internet, pero es necesario que pongas las "www", como www.geocities.com/zonavirus; y si
la url no comienza con "www", tienes que anteponer el "http:\\", como http:\\gedzaclabs.host.sk

este epdazo es de un manual que descargue de gedzac, espero que te sirva.

shadow.darknesses

boreck, jeje gracias yo = me bahe ese manual  ;D
y kien me puede explicar algo de api, que el code que me puseriona arriba no entiendo nada
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
Const SW_SHOWNORMAL = 1
Private Sub Form_Load()
    ShellExecute Me.hwnd, vbNullString, "algo.zip", vbNullString, "C:\", SW_SHOWNORMAL
End Sub

aki
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
aki que es constaste que le puedo cambiar???
no entienod eso de "hwnd"y todos los demas parametros
aki
Const SW_SHOWNORMAL = 1
que es eso?
   ShellExecute Me.hwnd, vbNullString, "algo.zip", vbNullString, "C:\", SW_SHOWNORMAL
que es me.hwnd, que es vbNullString, algo.zip se supone que esta en
"c:\algo.zip", que es vbNullString, que es SW_SHOWNORMAL
xD como ven no entiendo nada, jeje
y x eso quiero entender el code en ves de solo copiarlo,
Saludos... el que me ponga algun manual de api, que explice esto o que me expliken seria feliz
aparte de este, xq no me explican mucho
http://foro.elhacker.net/index.php/topic,78189.0.html#top
y este no lo entiendo xfaa, ayuda
Saludos...




_Sergi_

1. Creo que deberías leerte un manual de vb básico. Si no sabes lo que es una constante (¡!) o lo que es el handle de una ventana, no se como pretendes usar APIs.

2. De eso se ha hablado muchisimo en el foro.

Aun asi.... intentaré ayudarte.

me.hwnd = el handle de la ventana actual
SW_SHOWNORMAL = es una constante, como puedan serlo vbNewline (que es Chr(10) en realidad) o la propia vbNullString (string de valor null)

En lo referente a la declaracion de la API en si........no hay nada que entender; alguien en su día consiguio averiguar como funcionaban y que parametros hay que pasarle y eso ha ido rulando por internet.

Lo que sí hay que saber/entender es la estructura de una llamada a API:

Private Declare Function <Nombre de la funcion> Lib <la libreria o archivo DLL donde está> Alias <un identificador> (<parámetros>)

Las APIs se declaran en la sección de declaraciones del form, modulo, modulo de clase etc.

Aqui te dejo solo una pequeñisima muestra de cuando se ha tratado el tema de las API en VB6

APIs documentadas
http://foro.elhacker.net/index.php/topic,149574.0.html

Duda existencial sobre API
http://foro.elhacker.net/index.php/topic,142865.0.html

Del último enlace, destacar este fragmento de Robokop
CitarLas cosas complejas y largas como por ejemplo cambiar el boton de inicio en vb  por un nombre, que no es tan dificil, por lo géneral una sola persona lo escribio y el codigo ronda con demasiadas variantes argumentando que es suyo , cuando para hacer una cosa de ese tipo se requiere paciencia , tiempo y estudio avanzado de apis.
Y asi es una sucesiva cadenita de Copy&paste de declaraciones ,constantes y de su úso , otra de las cuales razones por las que dicen que vb malacostrumbra.
Mi consejo:
Siempre busca un ejemplo de como usar alguna api cuando la necites ya que si alguien se mató para conseguirla demasiado tiempo tu te lo puedes ahorrar y si quieres demostrar que eres capaz de usar apis sin recursos de internet busca el archivo que te digo y basate en los parametros.

PD: Leete un manual de VB6

Un saludo ;)







Proyecto de Ingeniero