Llamar a un ejecutable externo VB

Iniciado por Adrylek, 8 Julio 2013, 18:39 PM

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

Eleкtro

Cita de: Adrylek en  8 Julio 2013, 20:10 PMyo sólo quiero un archivo que pueda usar en diferentes pc

Pues escoge la primera opción, el archivo externo.exe lo metes en tu proyecto como un recurso, y luego lo cargas al disco (a la carpeta que quieras, la carpeta %TEMP% estaría bien) y lo ejecutas.

El archivo lo puedes añadir como recurso desde las propiedades del proyecto, la pestaña "resources", no tiene pérdida (busca en Google si aún asi no te aclaras.), y para cargar el recurso a una carpeta puedes usar uno d emis snippets:
http://foro.elhacker.net/net/libreria_de_snippets_posteen_aqui_sus_snippets-t378770.0.html;msg1819773#msg1819773

Saludos








Adrylek

Cita de: EleKtro H@cker en  8 Julio 2013, 21:58 PM
Pues escoge la primera opción, el archivo externo.exe lo metes en tu proyecto como un recurso, y luego lo cargas al disco (a la carpeta que quieras, la carpeta %TEMP% estaría bien) y lo ejecutas.

El archivo lo puedes añadir como recurso desde las propiedades del proyecto, la pestaña "resources", no tiene pérdida (busca en Google si aún asi no te aclaras.), y para cargar el recurso a una carpeta puedes usar uno d emis snippets:
http://foro.elhacker.net/net/libreria_de_snippets_posteen_aqui_sus_snippets-t378770.0.html;msg1819773#msg1819773

Saludos
:l.. Me aparece el .exe en la carpeta Resources y de ahí ya no me deja moverlo, y no sé cómo llamarlo desde ahí..

Eleкtro

#12
@Adrylek

Se te ha dado todo lo que necesitas ...de todas formas no entiendo porque quieres mover el archivo de la carpeta Resources... al compilar tu proyecto ese archivo externo queda DENTRO del archivo compilado... ¿No querías un archivo "único" que se pueda mover a donde quieras?

...Da detalles de tu problema porque esto empieza a ser incómodo, no somos adivinos.

1. ¿que archivo externo es ese?, nombre de aplicacion si es conocido.
2. ¿Que se supone que hace tu aplicación con ese archivo?, ¿tu aplicación depende de ese archivo externo?
3. ¿que significa que no funciona en otro pc?
4. en que carpeta se encuentra ese archivo externo en tu pc
5. en que carpeta se puede encontrar ese otro archivo en otra pc
6. ¿no te sirve con embedir el archivo como recurso, cargarlo al disco, y problema solucionado?
7. ¿Tampoco te sirve mantener el archivo externo EN LA MISMA CARPETA que al archivo compilado?
8. ¿Tampoco te sirve mover el archivo externo a la carpeta system32?.
9. Cualquiera de las tres últimas opciones te sirve, ¿Hay alguna que no entiendas como hacerlo?.
10. da un ejemplo bien claro de todo con imágenes si lo ves necesario.

Saludos.








Adrylek

Cita de: EleKtro H@cker en  9 Julio 2013, 18:24 PM
@Adrylek

Se te ha dado todo lo que necesitas ...de todas formas no entiendo porque quieres mover el archivo de la carpeta Resources... al compilar tu proyecto ese archivo externo queda DENTRO del archivo compilado... ¿No querías un archivo "único" que se pueda mover a donde quieras?

...Da detalles de tu problema porque esto empieza a ser incómodo, no somos adivinos.

1. ¿que archivo externo es ese?, nombre de aplicacion si es conocido.
2. ¿Que se supone que hace tu aplicación con ese archivo?, ¿tu aplicación depende de ese archivo externo?
3. ¿que significa que no funciona en otro pc?
4. en que carpeta se encuentra ese archivo externo en tu pc
5. en que carpeta se puede encontrar ese otro archivo en otra pc
6. ¿no te sirve con embedir el archivo como recurso, cargarlo al disco, y problema solucionado?
7. ¿Tampoco te sirve mantener el archivo externo EN LA MISMA CARPETA que al archivo compilado?
8. ¿Tampoco te sirve mover el archivo externo a la carpeta system32?.
9. Cualquiera de las tres últimas opciones te sirve, ¿Hay alguna que no entiendas como hacerlo?.
10. da un ejemplo bien claro de todo con imágenes si lo ves necesario.

Saludos.

6- Sí que me serviría, pero no lo entiendo bien.. si lo cargo como recurso me dice que ese tipo de archivo no lo admite (.exe) pero me aparece en la carpeta Recursos, es lo que decía.
Sólo quiero saber como cargarlo al disco como dices tú..

Eleкtro

#14
Cita de: Adrylek en  9 Julio 2013, 18:50 PMsi lo cargo como recurso me dice que ese tipo de archivo no lo admite (.exe)

copia el mensaje de excepción completo, hay un botón que pone "copiar mensaje".

Cita de: Adrylek en  9 Julio 2013, 18:50 PMSólo quiero saber como cargarlo al disco como dices tú..

Código (vbnet) [Seleccionar]
Load_Resource_To_Disk(My.Resources.ArchivoExterno, "C:\Process.exe")
Process.Start("C:\Process.exe")

   Private Function Load_Resource_To_Disk(ByVal Resource As Byte(), ByVal Target_File As String) As Boolean
       Try
           Dim Buffer_FileStream As New IO.FileStream(Target_File, IO.FileMode.Create, IO.FileAccess.Write)
           Buffer_FileStream.Write(Resource, 0, Resource.Length) : Buffer_FileStream.Close()
           Return True
       Catch ex As Exception
           Return False
       End Try
   End Function








Adrylek

Cita de: EleKtro H@cker en  9 Julio 2013, 18:59 PM
copia el mensaje de excepción completo, hay un botón que pone "copiar mensaje".

Código (vbnet) [Seleccionar]
Load_Resource_To_Disk(My.Resources.ArchivoExterno, "C:\Process.exe")
Process.Start("C:\Process.exe")

   Private Function Load_Resource_To_Disk(ByVal Resource As Byte(), ByVal Target_File As String) As Boolean
       Try
           Dim Buffer_FileStream As New IO.FileStream(Target_File, IO.FileMode.Create, IO.FileAccess.Write)
           Buffer_FileStream.Write(Resource, 0, Resource.Length) : Buffer_FileStream.Close()
           Return True
       Catch ex As Exception
           Return False
       End Try
   End Function

En fin..
Siento molestar tanto pero me da tres errores..
Error   1   'ArchivoExterno' es un tipo en 'Resources' y no se puede usar como expresión.   
Error   2   La instrucción no puede aparecer dentro de un cuerpo de método. Se supone el final del método.   

Sé que soy muy noob en esto pero lo necesito hacer..

Eleкtro

#16
No me has copiado la excepción, sólo el mensaje del error.

Cita de: Adrylek en  9 Julio 2013, 19:07 PMError   2   La instrucción no puede aparecer dentro de un cuerpo de método. Se supone el final del método

Supongo que eso te está pasando porque has copiado mi código sin hacer los cambios necesarios...

1.  las instrucciones las metes dentro de un procedimiento, esto:
Código (vbnet) [Seleccionar]
Load_Resource_To_Disk(My.Resources.ArchivoExterno, "C:\Process.exe")
Process.Start("C:\Process.exe")


2. "My.Resources.ArchivoExterno", "ArchivoExterno" lo tienes que modificar por el nombre de tu recurso...

Y así ya te funcionará.

Saludos








Adrylek

Cita de: EleKtro H@cker en  9 Julio 2013, 19:41 PM
No me has copiado la excepción, sólo el mensaje del error.

Supongo que eso te está pasando porque has copiado mi código sin hacer los cambios necesarios...

1.  las instrucciones las metes dentro de un procedimiento, esto:
Código (vbnet) [Seleccionar]
Load_Resource_To_Disk(My.Resources.ArchivoExterno, "C:\Process.exe")
Process.Start("C:\Process.exe")


2. "My.Resources.ArchivoExterno", "ArchivoExterno" lo tienes que modificar por el nombre de tu recurso...

Y así ya te funcionará.

Saludos
Eso ya lo hacía..
Me dice
Error   1   'Load_Resource_To_Disk' no está declarado. Puede que esté inaccesible debido a su nivel de protección.   
Error 2      'stryk' no es un miembro de 'resources'.
stryk es el .exe que quiero poner..

No sé si pongo bien el .exe como recurso ya que al añadirlo como recurso sólo le he dado en añadir recurso y he buscado el .exe .. t.T

Eleкtro

Cita de: Adrylek en  9 Julio 2013, 19:54 PMError   1 'Load_Resource_To_Disk' no está declarado. Puede que esté inaccesible debido a su nivel de protección.   

Estás intentando usar la función desde otro formulario, como te dice el error tienes que modificar el tipo de protección.

Código (vbnet) [Seleccionar]
Public shared Function Load_Resource_To_Disk(ByVal bla bla bla...
end function


Cita de: Adrylek en  9 Julio 2013, 19:54 PMError 2 'stryk' no es un miembro de 'resources'.
No has agregado corréctamente el recurso al namespace "my.resources", arriba te expliqué como debes añadirlo.

Saludos!








Adrylek

Cita de: EleKtro H@cker en  9 Julio 2013, 20:46 PM
Estás intentando usar la función desde otro formulario, como te dice el error tienes que modificar el tipo de protección.

Código (vbnet) [Seleccionar]
Public shared Function Load_Resource_To_Disk(ByVal bla bla bla...
end function

No has agregado corréctamente el recurso al namespace "my.resources", arriba te expliqué como debes añadirlo.

Saludos!
Lo añado como tú dices, se me pone en la carpeta Resources y nada más..