Iniciar mi aplicación antes de la pantalla login de windows.

Iniciado por bazocus, 26 Julio 2011, 09:29 AM

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

bazocus

Hola buenos días. Estoy tratando de realizar una aplicación con sensores en C#y con visual studio 2010 como IDE.

Mi programa debería de poder arrancarse en segundo plano cuando la pantalla de logeo aparece y así poder iniciar sesión con una simple pulsación de tecla... el problema es que no consigo que mi programa se inicie antes...

Hasta ahora he conseguido registrarlo en local machine y hacer que se inicie tras el logeo ... pero necesito q se realice antes.

Espero puedan echarme una mano con este problema.

Un saludo.

Khronos14

Lo veo bastante complicado, y creo que la única manera sería con un driver hecho en C/ASM. Y aún así no te garantizo que te funcione...

bazocus

Por lo que he leido hasta ahora lo que necesito es cambiar mi aplicación de interfaz y crear un servicio de aplicación de windows para registrarlo cuando el sistema operativo arranca...

Os iré informando para ver si lo consigo :)

Spider-Net

Hay un pequeño truco que puedes utilizar. Hay un programa que se ejecuta en la ventana de login para la accesibilidad en Windows, es el fichero sethc.exe, si renombras sethc.exe (está en windows/system32) por cualquier otro nombre y le pones a tu programa sethc.exe, puedes ejecutar tu programa en la pantalla de login pulsando shift 5 veces.

Esto es un truco para forzar a ejecutar un programa antes de login de windows, pero no serviría para hacer algo serio ni sé que tal funcionará. La última vez que lo probé fue para cambiar la clave de un usuario de windows y lo hice poniéndole a cmd.exe el nombre sethc.exe y pulsando 5 veces shift en la ventana de login. Se abrió la consola con privilegios de administrador :P.

Arkangel_0x7C5

#4
con una dll puedes hacerlo

solo tienes que modificar el registro y colocar la ruta de tu dll

[HKLM\System\CurrentControlSet\Control\Session Manager\KnownDlls]

[edito]

[HKLM\System\CurrentControlSet\Control\Session Manager]
BootExecute

Esta ejecuta exes durante el arranque

Meta

Cita de: bazocus en 26 Julio 2011, 09:29 AM
Hola buenos días. Estoy tratando de realizar una aplicación con sensores en C#y con visual studio 2010 como IDE.

Mi programa debería de poder arrancarse en segundo plano cuando la pantalla de logeo aparece y así poder iniciar sesión con una simple pulsación de tecla... el problema es que no consigo que mi programa se inicie antes...

Hasta ahora he conseguido registrarlo en local machine y hacer que se inicie tras el logeo ... pero necesito q se realice antes.

Espero puedan echarme una mano con este problema.

Un saludo.

Amigo:

Hice tu pregunta a gente que sabe en el foro oficial de C#.

Ver respuestas.

Poco a poco te irán hablando. Si quiere que le responda algo me lo dices por aquí, también puedes ir usted mismo.

Saludo.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

bazocus

Muchas gracias por vuestras respuestas... La verdad es que el hilo acaba en el mío que publiqué inicialmente en windows... y acaba con esta contestación xDDD.... copio y pego...

Hola!

Si lo que quieres es interactuar con el login el tema es algo más complicado que crear un servicio, pues desde el servicio (a no ser que seas un buen hacker) no podrás forzar pulsaciones de teclas en la pantalla de login.

Esto antiguamente se hacía sustituyendo o extendiendo la librería GINA, que permitía cambiar la pantalla de login del windows XP, así se puede cambiar la pantalla de inicio para que permita realizar el login mediante una smartcard o algún sistema biométrico (lo que parece que estás desarrollando tu).

A partir de Windows Vista ese sistema ya no funciona, se cambió el modelo de programación y la estructura que lo soporta. Aquí tienes un esquema de como es el sistema antes y después de Vista: http://technet.microsoft.com/en-us/library/ff404303(WS.10).aspx

En el MSDN Magazine de hace unos años tienes explicado cómo se hace en C++: http://msdn.microsoft.com/en-us/magazine/cc163489.aspx

Si pretendes hacerlo en C# te vas a encontrar con muchos problemas, no se ni si es realmente posible, pues tienes que implementar un interfaz COM (ICredentialProvider) y para eso tendrás siempre que utilizar algo de C++ para por lo menos publicar el interfaz.

Espero no haberte desanimado :D, si es lo que pienso es todo un reto!

Suerte,

-Juanma


espero q de algún modo aunque sea en el xp puedan ayudarme con algo xD

saludos!

bazocus

Hola, buenas tardes de nuevo  ;)

He tenido que cambiar mi SO de w7 a xp... debido a que en w7 y en vista se había modificado el sistema de pantalla de login GINA... y no permitían iniciar practicamente nada en el arranque... capando pulsaciones de teclas y demás eventos...

Tras pasarme al xp.. he conseguido que mi aplicación salte en la selección de usuarios... ahora bien... estoy investigando una función que mediante c# le pase el user y pass, pudiendo así acceder a la cuenta que desee sin tener que meter manualmente los datos...

Por ejemplo pulsar una tecla y... zas... entras a la cuenta
pulsas otra distinta y entramos a la que tengamos programada.

Me han comentado sobre la función logonuser pero no consigo que inicie la cuenta.

A ver si puedes echarme un cable. Un saludo