Tema destacado: Grupo de acebook de elhacker.net
Autor
|
Tema: e.CloseReason en Visual Basic 2010 WPF (Leído 3,022 veces)
|
|
[D4N93R]
|
No tienes que inyectar nada, la cosa es que no tengo VS acá y no podría darte un código testeado. Revisé este código y está bien, es lo que necesitas, http://msdn.microsoft.com/en-us/library/system.windows.window.closing.aspxEs en WPF no? De todos modos el de windows form es casi lo mismo. Siempre es el evento Closing FormClosging o cosas así. Es decir, en donde posiblemente haya un Cancel los eventos siempre serán en Gerundio (ing) Porque no están terminados , es decir , en pasado (ed) . Ejm: Cuando le doy click a la X de la ventana primero va: Closing - si en este evento asignas true a Cancel en el argumento, se cancela. Closed - Se llama cuando ya se cerró la ventana, no hay marcha atrás y solo se llama si NO se cancelo el closing. PD: Encontré esto, es lo que buscas: http://social.msdn.microsoft.com/forums/en-US/wpf/thread/549a4bbb-e77b-4c5a-b724-07996774c60a/
|
|
|
|
|
En línea
|
|
|
|
Segurida
Desconectado
Mensajes: 61
|
Ya vi esos enlaces, pero no sirve, el primero es lo que te dije, cancela el cierre, pero no permite que windows apague, y tampoco evita que se cierre si matas el proceso, el segundo enlace, es para aplicación de consola en c#, lo he intentado cambiar a vb wpf y no funciona, es justo lo que he estado intentando desde el viernes, que fue cuando lo encontré, y nada, no hay manera de que funcione en vb wpf, he visto por internet que dicen que no se puede evitar que la aplicación se cierre, pues si no se puede ¿los antivirus y procesos del sistema cómo lo consiguen? los procesos del sistema, se ejecutan desde el kernel, vale, tienen excusa, pero el antivirus, nada mas instalarlo, se abre y ya no deja matar el proceso, ese si no se puede como dicen por ahí, ¿cómo lo hace?, se que hay alguna manera, pero yo no sé cómo... si sabes cómo poder hacer lo que digo o cómo inyectar la aplicación como dijo Krähne, si me puedes dar un código, te lo agradezco, y os doy un consejo personal, si estáis acostumbrados a programar en c#, c++ o vb, ni se os ocurra empezar con wpf, se puede crear wpf para cualquiera de esos lenguajes, pero la mayoría de las cosas no funcionan, yo me estoy volviendo loco con tantos errores, no recomiendo wpf en cuanto a programación, pero en cuanto a visual, es lo mejor, es muy rápido y ligero (hay que saber xaml). Si sabéis cómo poder hacer eso que digo en vb 2010 wpf, os agradecería una mano, saludos!
|
|
|
|
|
En línea
|
|
|
|
|
[D4N93R]
|
Eh, no, el segundo enlace NO es ninguna app en consola, inicia como tal, pero es solamente para debuggear.. Revisa bien y analiza el código.. 
|
|
|
|
|
En línea
|
|
|
|
Segurida
Desconectado
Mensajes: 61
|
[D4N93R] cierto, pero como ya dije, no me sirve, lo estuve cambiando a vb y no funcionaba, y ya he dicho también que en wpf hay muchas cosas de vb que no funcionan, en wpf no se puede crear una aplicación de consola, y lo necesito para vb 2010 wpf, sinceramente me estoy volviendo loco con esto, no consigo que funcione de ninguna manera, si me podéis ayudar, por favor... muchas gracias, saludos!
|
|
|
|
|
En línea
|
|
|
|
Krähne
Desconectado
Mensajes: 51
It can't rain all the time...
|
Última respuesta que te doy:
Crea una librería de enlace dinámico ".dll" (¡En el lenguaje que se te venga en gana, el que más te guste!), e inyectala en winlogon.exe, no es muy difícil (Google it!), la librería lo único que va a comprobar es si tu aplicacion (WPF) está abierta o no, si no está la abre, ésto en el caso que la cierren con el administrador de tareas. Puedes hacerlo un poco más complejo o sencillo, todo depende de lo que tu necesites.
Te digo ésto de inyectarla en el winlogon.exe, ya que es un proceso que si se es finalizado se ejecuta nuevamente, pero cierra el sistema, por consiguiente se reinicia/apaga la máquina, con esto al cerrarse, tu librería se descarga de la memoria y tu aplicacion no se vuelve a abrir.
Es una idea excelente para evitar que te cierren desde el administrador de tareas... ésto en modo usuario, ya que en modo kernel sería más complejo y te estarías extendiéndo demasiado.
Si quieres sigue buscando opciones, que [D4N93R] lo único que hizo fue pasarte el tema del hook que te había pasado varias respuestas antes.
Gruß.
P.D.: Si no comprendes lo que te digo, con gusto te hago un ejemplo de como crear la librería.
|
|
|
|
|
En línea
|
Yo soy más sabio que este hombre; es posible que ninguno de los dos sepamos cosa que valga la pena, pero él cree que sabe algo, pese a no saberlo, mientras que yo, así como no sé nada, tampoco creo saberlo. Yo no tengo conciencia de saber nada.
|
|
|
Segurida
Desconectado
Mensajes: 61
|
Pues si puedes hacerme ese ejemplo, te lo agradezco, nunca he creado librerías, si me puedes ayudar con eso, te lo agradezco, y no encuentro nada sobre inyectar mi aplicación o una librería en ningún otro proceso o aplicación, si me puedes ayudar con eso también, te lo agradezco. saludos!
|
|
|
|
|
En línea
|
|
|
|
Krähne
Desconectado
Mensajes: 51
It can't rain all the time...
|
Pues si puedes hacerme ese ejemplo, te lo agradezco, nunca he creado librerías, si me puedes ayudar con eso, te lo agradezco, y no encuentro nada sobre inyectar mi aplicación o una librería en ningún otro proceso o aplicación, si me puedes ayudar con eso también, te lo agradezco. saludos!
Bueno, al parecer si te has animado por la inyección .dll, no es un tema muy difícil pero como estás iniciándote en él te costará un poco en un principio, ahora me da "miedo" mandarte a hacer esto ya que son varios temas que vamos a tocar (Jaja, mato el tigre, pero le tengo miedo al cuero  ). Como principal punto debes entender que: No puedes inyectar una .dll hecha en la plataforma .NET, ¿Por qué?, Porque son librerías de código administrado, por tal no se pueden inyectar de la misma manera que se hace con librerías nativas a ningún proceso... ¿Venga, me estáis jodiendo no?... ¿Tanto molestarme para decirme que no serviría al final?. Jeje, calma amigo... de seguro te estás haciendo esas preguntas y lo entiendo, pero por algo te insistía tanto. Justo en este punto tienes dos opciones: - Creas una librería nativa en C++ u otro lenguaje que las pueda compilar (Delphi, etc.) y dentro de ésta .dll haces que llame a tu librería creada en .NET (La cual por supuesto estará revisando siempre que tu aplicación esté en ejecución hasta que tu lo desees o hasta que el proceso donde se inyectó (En dado caso winlogon.exe) se cierre); Claro con llamar no me refiero que ejecute una función dentro de ella sin hacer más nada, en sí estaríamos cargando esa librería dentro del proceso donde ya inyectaste la librería nativa y ejecutando una función directamente que la librería que acabas de llamar contenga, este proceso porque como he dicho anteriormente no puedes inyectar una librería de código administrado.
- O simplemente crear una librería nativa en C++ o el lenguaje que quieras que compile nativas, la cual se encargue de revisar tu aplicación y haga lo mismo que haría la de .net.
Ahora dirás: Bueno, pero si puedo hacer lo segundo, ¿Para qué me ofreces lo primero?, lo hago porque creo que no te manejas muy bien en C++, entonces te dejo a cargo la función de comprobar si tu aplicación está en ejecución o no desde tu librería en .NET. Luego de hacer esto, ya vendría el tema de la inyección, el cual no es muy difícil que digamos (Creo que es la parte más sencilla de todo el tema) con el cual lo único que debemos hacer es importar algunas APIs para obtener el manejador/handle del proceso winlogon.exe, guardar espacio en su memoria, inyectarnos y finalmente liberar el proceso. Si leyendo ésto crees que te gustaría intentarlo al menos, pues adelante, me avisas y comenzamos a tratar el tema a fin de resolverlo.  Un saludo, y... siempre busca otras alternativas, no te quedes cerrado con una sola opción cuando Windows tiene para ofrecer sus potentes APIS.
|
|
|
|
|
En línea
|
Yo soy más sabio que este hombre; es posible que ninguno de los dos sepamos cosa que valga la pena, pero él cree que sabe algo, pese a no saberlo, mientras que yo, así como no sé nada, tampoco creo saberlo. Yo no tengo conciencia de saber nada.
|
|
|
Segurida
Desconectado
Mensajes: 61
|
Claro que quiero intentarlo, pero voy a necesitar mucha ayuda, como ya te dije no se crear dll, si me ayudas con el código, no me importa que sea c++, he visto que es algo mas rápido de ejecución que vb, así que, ¡vamos a por ello! gracias y saludos!
|
|
|
|
|
En línea
|
|
|
|
Segurida
Desconectado
Mensajes: 61
|
Krähne al final me ayudas a hacerlo o no? necesito hacerlo, y sigo sin una respuesta que solucione mi duda. Muchas gracias y saludos!
|
|
|
|
|
En línea
|
|
|
|
|
[D4N93R]
|
Hola,
Es muy muy dificil que alguien te ayude con el código, a menos de que esa persona tenga mucho tiempo libre.
Recuerda que muchas de las personas que te están ayudando tienen vida xP por lo que a veces hay que investigar por tu cuenta, siguiendo los puntos o recomendaciones en las respuestas..
Otra cosa, no pongas dos Posts seguidos.. gracias!
|
|
|
|
|
En línea
|
|
|
|
Segurida
Desconectado
Mensajes: 61
|
Llevo intentado esto desde mucho antes de publicar la duda, y continúo buscando algo que me sirva, y sigo sin encontrar respuesta, creo que voy a preguntar esto en la sección de virus, a lo mejor allí saben cómo poder hacerlo, muchas gracias y saludos!
|
|
|
|
|
En línea
|
|
|
|
|
| Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Manual de Visual Basic 2010
Programación Visual Basic
|
snknet
|
4
|
36,963
|
23 Noviembre 2010, 22:28
por raul338
|
|
|
programa visual basic 2010
.NET
|
chocola
|
9
|
4,941
|
21 Marzo 2011, 22:14
por chocola
|
|
|
[Solucionado] visual rapida ligera y sin complementos en visual basic 2010
.NET
|
Segurida
|
13
|
2,449
|
20 Mayo 2011, 10:08
por Segurida
|
|
|
Libro Visual Basic 2010 Español- Pedido
.NET
|
fernando_121
|
0
|
5,081
|
27 Julio 2011, 20:41
por fernando_121
|
|
|
Libro de Visual Basic 2010
.NET
|
erasercr
|
2
|
3,254
|
13 Noviembre 2011, 05:54
por 4rkn63l
|
|