Visual Basic.NET - "Application1 dejó de funcionar"

 
Vista:
sin imagen de perfil

"Application1 dejó de funcionar"

Publicado por Fran (13 intervenciones) el 13/03/2014 22:38:44
Saludos:
Tengo un programa hecho en Visual Studio 2010 Express que consta de un hook de teclado y lo que hace es reproducir un sonido cuando se pulsa la tecla.
Cuando lo publico,pulso 2 veces en el archivo exe y pulso una tecla; sale un cartelito que dice:"Application1 dejó de funcionar".Lo raro es que antes de publicarla( en VS 2010)cuando lo depuro pulsando F5 va perfectamente;suena el sonido cuando pulso la tecla.

No sé a que se debe.
He preguntado en muchos foros y me han dicho:
-Que mire si la aplicación está hecha para equipos de 64 bits(porque tengo Windows 8 64 bits),pero no estoy seguro si lo tengo así configurado.
-Que instale Windbg y pulse unos comandos para que me de un stack.No tengo ni idea de como se hace un stack!!!
-Que el código entero está mal estructurado y tendría que escribir código para manejar excepciones no controladas.Pero no sé como se escribe.

Por favor,diganme que puedo hacer.
Les adjunto los archivos del programa para que puedan ver mejor por que se produce el error.
Por favor,ojalá me puedan ayudar.
Muchas gracias por todo.
Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

"Application1 dejó de funcionar"

Publicado por Pico (167 intervenciones) el 14/03/2014 06:51:04
El error que da es que no encuentra el archivo de sonido. ResourceFilePathPrefix devuelve un valor debuggeando y otro sin debuggear. Debuggeando encuentra el archivo pero sin debuggear no. Usa Application.ExecutablePath. Eso da el path donde esté el exe. O pones ahí el archivo de sonido o partes de ahí a otra ruta relativa.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

"Application1 dejó de funcionar"

Publicado por Fran (13 intervenciones) el 21/03/2014 22:48:50
Hola Pico y muchas gracias por tu respuesta(y disculpa el retraso)
¿Podrías darme alguna pista de cómo escribir el código?
Es que solo encuentro esto: Dim exePath As String = Application.ExecutablePath() pero no sé si es suficiente.
Muchas gracias de antemano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

"Application1 dejó de funcionar"

Publicado por omar (128 intervenciones) el 14/03/2014 14:24:05
cheque tu aplicación el problema con el express es que tienes que incluir los archivos en el ejecutable

Pereo si deseas que te ayude, cuando termines lo coloque con otro programa para que se pueda ejecutar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

"Application1 dejó de funcionar"

Publicado por Fran (13 intervenciones) el 21/03/2014 22:50:03
Muchas gracias por responder y disculpa por el retraso.
¿Cómo se meten archivos en un ejecutable?Porque yo metí el audio como recurso
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

"Application1 dejó de funcionar"

Publicado por Pico (167 intervenciones) el 22/03/2014 21:12:37
Eso de Dim exePath As String = Application.ExecutablePath() te da el path del exe. Si metes el archivo de sonido en el mismo directorio que el exe y al Dim exePath As String = Application.ExecutablePath() le sumas el nombre del archivo, te funciona.

El archivo de sonido ahora no esta metido como recurso. Para eso tienes que irte al explorador de soluciones, al archivo de sonido, y darle a propieades. Ahí, en Acción de compilación darle a Recurso incrustado. Luego accedes a él así http://support.microsoft.com/kb/319291/es
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

"Application1 dejó de funcionar"

Publicado por Fran (13 intervenciones) el 23/03/2014 01:28:19
Hola y gracias por responder:
Para sumar el nombre del archivo en Dim exePath As String = Application.ExecutablePath()...¿Tengo que meter el path dentro del paréntesis o hay otra forma para sumarlo?
Saludos y gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

"Application1 dejó de funcionar"

Publicado por Pico (167 intervenciones) el 23/03/2014 06:48:07
My.Computer.Audio.Play(Application.StartupPath + "\sonido1.wav") y pones al archivo de sonido en el mismo directorio que el exe.

Todo lo del Form1_Load para dar valor al ResourceFilePathPrefi puedes quitarlo. La idea está bien pero mal desarrollada.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

"Application1 dejó de funcionar"

Publicado por Fran (13 intervenciones) el 26/03/2014 21:08:48
¡¡¡Ya funciona!!!!
¡¡¡Muchas gracias!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar