elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Shell
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Shell  (Leído 2,623 veces)
magarcan

Desconectado Desconectado

Mensajes: 80


Ver Perfil
Shell
« en: 28 Junio 2007, 12:45 pm »

En mi rpograma tilizo la función shell para ejecutar comandos de msdos, la mayoría de los que he probado funcionan perfectamente excepto el copy.

Si pongo:
Código:
Shell "copy C:\Untitled.wmv J:\"

Me da error 53, no se ha encontrado el archivo, pero el archivo está, porque si pongo el mismo comando en la línea de comandos de windows sí que me lo hace.

He visto que el vb tiene una función propia para la copia de archivos pero es mucho más lenta. ¿Alguien sabe por qué no me funciona?
Gracias


En línea

kabukiman

Desconectado Desconectado

Mensajes: 50


The Visual basic Scriptkiddie


Ver Perfil
Re: Shell
« Respuesta #1 en: 28 Junio 2007, 12:46 pm »

Prueba utilizando el

FileCopy


En línea

Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Shell
« Respuesta #2 en: 28 Junio 2007, 12:50 pm »

Otra opción:

Código:
Shell "cmd.exe /C copy C:\Untitled.wmv J:\"

Un Saludo.  ;)
En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
magarcan

Desconectado Desconectado

Mensajes: 80


Ver Perfil
Re: Shell
« Respuesta #3 en: 28 Junio 2007, 14:01 pm »

Citar
Prueba utilizando el
FileCopy
Citar
He visto que el vb tiene una función propia para la copia de archivos pero es mucho más lenta
Con ésto me refería a esa función.

Hendrix, lo que me has dicho funciona a la perfección GRACIAS!!

Ahora se me plantea otra duda. Si pongo:
Código:
Shell "cmd.exe /C copy C:\Untitled.wmv J:\"
MsgBox "Hola"
Antes de que se termine de copiar el archivo se ejecuta la siguiente instrucción, ¿hay algún modo de hacer que se espere?
En línea

Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Shell
« Respuesta #4 en: 28 Junio 2007, 14:52 pm »

Con la API WaitForSingleObject puedes esperar a que se cierre la aplicación.  ;)

Para usarla haz esto:

Código:
dim Ho as long

Ho = sell ("cmd.exe /C copy C:\Untitled.wmv J:\")
waitforsingleobject (ho, Infinite)

Mira este ejemplo: http://support.microsoft.com/kb/551122/es

Un Saudo.  ;)

En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
magarcan

Desconectado Desconectado

Mensajes: 80


Ver Perfil
Re: Shell
« Respuesta #5 en: 28 Junio 2007, 20:44 pm »

He declarado:
Código:
Private Declare Function Waitforsingleobject Lib "kernel32" Alias _
"WaitForSingleObject" (ByVal hHandle As Long, _
ByVal dwMilliseconds As Long) As Long
Y en el código he puesto:
Código:
Dim Ho As Long
Ho = Shell("cmd.exe /C copy C:\Untitled.wmv J:\")
ret = Waitforsingleobject(Ho, Infinite)
El problema es que no se espera, ¿puede ser porque la función shell no devueñve el identificardor que necesita Waitforsingleobject?, ¿alguna solución?

Citar
¿puede ser porque la función shell no devueñve el identificardor que necesita Waitforsingleobject?
NO, porque he comprobado que la variable Ho, recibe un número.

Muchas gracias!!!!
« Última modificación: 28 Junio 2007, 21:01 pm por magarcan » En línea

byebye


Desconectado Desconectado

Mensajes: 5.093



Ver Perfil
Re: Shell
« Respuesta #6 en: 28 Junio 2007, 21:15 pm »

shell te devuelve el id del proceso y waitforsingleobject necesita el handle del proceso.
En línea

magarcan

Desconectado Desconectado

Mensajes: 80


Ver Perfil
Re: Shell
« Respuesta #7 en: 28 Junio 2007, 21:41 pm »

¿Cómo obtengo el handle a partir de la id? ¿O de qué otra manera podría hacerlo?
En línea

byebye


Desconectado Desconectado

Mensajes: 5.093



Ver Perfil
Re: Shell
« Respuesta #8 en: 28 Junio 2007, 21:48 pm »

openprocess
En línea

magarcan

Desconectado Desconectado

Mensajes: 80


Ver Perfil
Re: Shell
« Respuesta #9 en: 30 Junio 2007, 00:17 am »

 :-\ un poquito más explícito ayudaría. Buscaré información a ver que saco con eso. Gracias
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines