![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola
Muchas Gracias por ayudarme Lepe. Lo que me dices ya lo había probado yo, pero por si acaso lo volví a probar, y nada, sigo sin poder hacer un logoff del Pc; lo único que me funciona es ShutDownWindows(EWX_REBOOT); y ShutDownWindows(EWX_POWEROFF); . No sé que estaré haciendo mal: Creo un form con 2 botones:
y el ejecutable Project1.exe lo meto en la carpeta C:\Prueba. Creo una aplicación que arranca Project1.exe con privilegios de administrador:
Lo ejecuto, se inicia el form y al pulsar a alguno de los botones lo único que ocurre es que el form se cierra ; el guindols ni se inmuta ...Muchas gracias y perdonen las molestias. Última edición por PoZi fecha: 03-05-2006 a las 20:52:16. |
|
#2
|
||||
|
||||
|
Acabo de probar el código de BitBtn1 y efectivamente me cierra la sessión abortando los programas en ejecución.
El BitBtn2 no debe funcionar jejeje. Cita:
como ves el POWEROFF no dice nada del contexto de seguridad.... dice que debe tener el privilegio SE_SHUTDOWN_NAME, que precisamente es el que se le da en la rutina que te dí. Ejecuta el programa directamente sin el lanzador y cuentanos si cierra la sesion.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
#3
|
||||
|
||||
|
Hola.
Sí sí, sin utilizar el lanzador me funciona perfectamente ExitWindowsEx() para cualquier caso (o Flag), incluso poniendo ExitWindowsEx(EWX_FORCE); , pero necesito utilizar el lanzador que da permisos de administrador para que el programa pueda escribir en la base de datos que tengo implementada y el usuario que accede al Pc no. Saludos Última edición por PoZi fecha: 26-04-2006 a las 14:20:11. |
|
#4
|
||||
|
||||
|
Buscate la funcion RunAndWait32 que anda por el foro.
El lanzador abre el programa de Bases de datos y se queda esperando con esa función hasta que termine el programa de BBDD. El programa de bases de datos pone el Timer en marcha y cuando el tiempo expire, informa al usuario y se cierra el programa. Ahora que se ha cerrado, el lanzador continua su ejecución y cierra el sistema con el Logoff. Como el programa lanzador se está ejecutando en el contexto de los demás procesos, si cerrará el sistema bien. EDITO:
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 07-04-2006 a las 00:19:20. |
|
#5
|
||||
|
||||
|
Hola Lepe.
Muy buena idea. Probaré lo que me dices y ya os contaré pero estoy seguro que funcionará. Muchas Gracias de verdad. Os felicito por esta gran comunidad. Saludos |
|
#6
|
||||
|
||||
|
Hola¡¡¡
Perdonenme por haber respondido tan tarde, pero he estado probando cosas y no he podido antes. La idea que me dio Lepe funciona bien salvo cuando el lanzador se encuentra esperando la finalización del programa prinicipal (en WaitForSingleObject) y el usuario pulsa logoff. En este caso windows no puede cerrar el lanzador puesto que se encuentra ocupado y aparece la pantalla de End Now o Cerrar ahora. Si le pulso al botón,el programa efectivamente se cierra pero el código del evento OncloseQuery, donde almaceno la hora y fecha de salida del usuario, no se ejecuta. Por cierto les informo, por si a alguien le puede interesar, que al usar la función CreateProcessWithLogonW aparte de dejar de funcionar la función ExitWindowsEx también lo hace el evento OnCloseQuery del programa lanzado. Por ese motivo yo he tenido que guardar los datos de salida del usuario desde el lanzador, pero como ven no consigo hacerlo . |
|
#7
|
||||
|
||||
|
Mira este hilo que he "reabierto" hace unos minutos, creo que los tiros van por ahí.
El mensaje de roman, como siempre, no tiene desperdicio .Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Dar privilegios del SYSDBA a otro usuario | Eolo | Firebird e Interbase | 3 | 21-03-2004 05:48:15 |
| Roles - Usuarios y privilegios | Osorio | Firebird e Interbase | 2 | 13-02-2004 23:34:31 |
| Privilegios en interbase | acrophet | Conexión con bases de datos | 1 | 09-02-2004 15:07:35 |
|