Hola muchachos.
Les pido ayuda con algo que quizás para mucho es una pavada.
He buscado en san google pero no he encontrado la solución.
He creado un simple archivo que ejecuta un archivo wav .
El problema es que se ejecuta, finaliza pero queda el proceso corriendo en memoria.
Si pongo Unload Me , se descarga el form de memoria pero no ejecuta el archivo.
Y con Me.Hide queda corriendo.
En form he escrito:
Private Sub Form_Load()
PlaySound "C:\sonido\Apagado de Windows XP.wav", SND_ASYNC
Me.Hide
End Sub
En un módulo:
Public Declare Function sndPlaySound Lib "winmm.dll" _
Alias "sndPlaySoundA" (ByVal lpszSoundName As String, _
ByVal uFlags As Long) As Long
Public Const SND_LOOP = &H8
Public Const SND_NODEFAULT = &H2
Public Const SND_SYNC = &H0
Public Const SND_ASYNC = &H1
Public Function PlaySound(FileName As String, F As Long) As Long
PlaySound = sndPlaySound(FileName, F)
End Function
¿Hace falta alguna Api para cerrar el proceso?
Gracias por su tiempo.
Si le pones un Timer al Unload ?
Private Sub Form_Load()
dim contador as integer = 1
PlaySound "C:\sonido\Apagado de Windows XP.wav", SND_ASYNC
Me.Hide
Tiemer1.Endable = True
End Sub
y en el timer un contador
que le de tiempo a ejecutar Playsound
Private Sub Timer1_....
contador = contador +1
if contador => 50 then
unload.mE
end if
algo mas o menos asi
Saludos
Private Sub Form_Load()
dim contador as integer = 1
PlaySound "C:\sonido\Apagado de Windows XP.wav", SND_ASYNC
Me.Hide
Tiemer1.Endable = True
End Sub
y en el timer un contador
que le de tiempo a ejecutar Playsound
Private Sub Timer1_....
contador = contador +1
if contador => 50 then
unload.mE
end if
algo mas o menos asi
Saludos

Me marca en rojo esta línea: dim contador as integer = 1
Quité = 1, compilé y ejecuta, el problema es que me sale este cartel:
Run-time error 424
Objet required.
Al darle aceptar, efectivamente se cierra el proceso.
Quité = 1, compilé y ejecuta, el problema es que me sale este cartel:
Run-time error 424
Objet required.
Al darle aceptar, efectivamente se cierra el proceso.


Se pone:Ignaro mayor de BsAS escribió:Me marca en rojo esta línea: dim contador as integer = 1
Quité = 1, compilé y ejecuta, el problema es que me sale este cartel:
Run-time error 424
Objet required.
Al darle aceptar, efectivamente se cierra el proceso.
Código: Seleccionar todo
Dim contador As Integer
contador = 1

Me sigue arrojando el mismo error.
Tengo entendio que ese error responde a una no correspondencia entre los datos, strings , variables o algo así.
Tengo entendio que ese error responde a una no correspondencia entre los datos, strings , variables o algo así.


El "contador" declarlo a nivel formulario
Otra alternativa seria utilizar un text1.text = 1
en el timer lo mismo pero en vez de "contador" utilizar el text
Text1.Text = Text1.Text + 1
la propiedad visible del text1 en "false " para que no se vea
Otra alternativa seria utilizar un text1.text = 1
en el timer lo mismo pero en vez de "contador" utilizar el text
Text1.Text = Text1.Text + 1
la propiedad visible del text1 en "false " para que no se vea

Bueno lo que entiendo es que se reproduce un sonido, cuando este termine la aplicación se cierra.
Puedes usar la Flag SND_SYNC, lo que hace que la API se reproduzca en el mismo thread que la aplicación, es como un WaitForObject, no devuelve el control del programa hasta que finalice, entonces el code quedaría así.
Saludos!
Puedes usar la Flag SND_SYNC, lo que hace que la API se reproduzca en el mismo thread que la aplicación, es como un WaitForObject, no devuelve el control del programa hasta que finalice, entonces el code quedaría así.
Código: Seleccionar todo
Private Sub Form_Load()
PlaySound "C:\sonido\Apagado de Windows XP.wav", SND_SYNC
Unload Me
End Sub
We do what we must, because, we can-> [www.youtube.com/watch?v=Y6ljFaKRTrI]
Pasa a saludar: NeoDark-Labs.BlogSpot.mx
<<<<Proyectos en curso>>>>
[+]Restauración de SSDT
[+]Driver v3 - Ocultar drivers
[+]Anti-rootkit
Pasa a saludar: NeoDark-Labs.BlogSpot.mx
<<<<Proyectos en curso>>>>
[+]Restauración de SSDT
[+]Driver v3 - Ocultar drivers
[+]Anti-rootkit
Es que todo lo puse en el form, compañero.xserpientex escribió:El "contador" declarlo a nivel formulario
Otra alternativa seria utilizar un text1.text = 1
en el timer lo mismo pero en vez de "contador" utilizar el text
Text1.Text = Text1.Text + 1
la propiedad visible del text1 en "false " para que no se vea
Aclaro que la idea es ejecutar el archivo remotamente y obvio que no se vea.
Orlando9427, gracias . Veré como implementar esa Api que ya la había visto en una aplicación para ejecutar archivos de música. Pero el código es bastante extenso...


Ignaro mayor de BsAS escribió:Es que todo lo puse en el form, compañero.xserpientex escribió:El "contador" declarlo a nivel formulario
Otra alternativa seria utilizar un text1.text = 1
en el timer lo mismo pero en vez de "contador" utilizar el text
Text1.Text = Text1.Text + 1
la propiedad visible del text1 en "false " para que no se vea
Aclaro que la idea es ejecutar el archivo remotamente y obvio que no se vea.
Orlando9427, gracias . Veré como implementar esa Api que ya la había visto en una aplicación para ejecutar archivos de música. Pero el código es bastante extenso...
Don pero si aqui orlando te coloco la solucion
PlaySound "C:\sonido\Apagado de Windows XP.wav", SND_ASYNC
PlaySound "C:\sonido\Apagado de Windows XP.wav", SND_SYNC
Tu colocas la bandera asyncrona SND_ASYNC(creo asi se escribe)
solo es cuestion de colocar sus opuesto.SND_SYNC
Private Sub Form_Load()
PlaySound "C:\sonido\Apagado de Windows XP.wav", SND_SYNC
End
End Sub
PlaySound "C:\sonido\Apagado de Windows XP.wav", SND_SYNC
End
End Sub
Indetectables RAT v.0.9.5
@Indetectables Team
Nada, he probado todas las alternativas ofrecidas por ustedes y en cualquiera de ellas el proceso sigue corriendo en memoria.

