Autor
|
Tema: Llamar a un ejecutable externo VB (Leído 10,282 veces)
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
yo 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#msg1819773Saludos
|
|
|
En línea
|
|
|
|
Adrylek
Desconectado
Mensajes: 26
|
: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í..
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
@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.
|
|
« Última modificación: 9 Julio 2013, 18:32 pm por EleKtro H@cker »
|
En línea
|
|
|
|
Adrylek
Desconectado
Mensajes: 26
|
@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ú..
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
si 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". Sólo quiero saber como cargarlo al disco como dices tú..
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
|
|
« Última modificación: 9 Julio 2013, 19:01 pm por EleKtro H@cker »
|
En línea
|
|
|
|
Adrylek
Desconectado
Mensajes: 26
|
copia el mensaje de excepción completo, hay un botón que pone "copiar mensaje". 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..
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
No me has copiado la excepción, sólo el mensaje del error. Error 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: 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
|
|
« Última modificación: 9 Julio 2013, 19:45 pm por EleKtro H@cker »
|
En línea
|
|
|
|
Adrylek
Desconectado
Mensajes: 26
|
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: 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
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
Error 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. Public shared Function Load_Resource_To_Disk(ByVal bla bla bla... end function
Error 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!
|
|
|
En línea
|
|
|
|
Adrylek
Desconectado
Mensajes: 26
|
Estás intentando usar la función desde otro formulario, como te dice el error tienes que modificar el tipo de protección. 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..
|
|
|
En línea
|
|
|
|
|
|