Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-03-2009
gorsan gorsan is offline
Miembro
 
Registrado: jun 2003
Ubicación: Alcala de Henares (Madrid)
Posts: 87
Poder: 21
gorsan Va por buen camino
Reboot despues de la ejecucion de determinado programa

Hola a todos. De nuevo les planteo un problema, supongo que fácil para ustedes que son unos monstruos, y que consiste en lo siguiente:

Necesito rebotar una maquina una vez que haya terminado determinda aplicacion. En concreto, la aplicacion activa/desactiva los puertos USB y cuando esta termina necesito que la maquina se reinicie para que los cambios surtan efecto y todo ello por control remoto. ¿Cómo puedo saber cuando esa aplicacion a terminado para lanzar el reboot en mi aplicacion?

Gracias por sus respuestas.
Responder Con Cita
  #2  
Antiguo 11-03-2009
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
No necesitas capturar una especie de menaje "remoto" que indique que el proceso terminó para simplemente reiniciar esa maquina.

Al final de todo el proceso, dentro del mismo aplicativo, simplemente haces lo que indica dec, en el siguiente link...

http://www.clubdelphi.com/trucos/ind...l=0&scrollb=57
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 11-03-2009
gorsan gorsan is offline
Miembro
 
Registrado: jun 2003
Ubicación: Alcala de Henares (Madrid)
Posts: 87
Poder: 21
gorsan Va por buen camino
Lo que necesito realmente es saber cuendo determinado programa, por ejemplo, programa.exe deja de estar activo en el "Administrador de tareas de Windows" porque el usuario lo ha cerrado o porque ha terminado su ejecucion. Es en ese momento, cuando acaba la aplicacion, cuando yo debo proceder a reboot.
Responder Con Cita
  #4  
Antiguo 11-03-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Intenta con el ejemplo que pongo aquí.

// Saludos
Responder Con Cita
  #5  
Antiguo 12-03-2009
gorsan gorsan is offline
Miembro
 
Registrado: jun 2003
Ubicación: Alcala de Henares (Madrid)
Posts: 87
Poder: 21
gorsan Va por buen camino
Muchas gracias Roman. Es justo lo que necesitaba.
Ahora: ¿Como hago un reboot forzoso?
Responder Con Cita
  #6  
Antiguo 12-03-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por gorsan Ver Mensaje
...Ahora: ¿Como hago un reboot forzoso?
Bueno, quizás jhonny ya te dió la solución.

Saludos.
Responder Con Cita
  #7  
Antiguo 12-03-2009
gorsan gorsan is offline
Miembro
 
Registrado: jun 2003
Ubicación: Alcala de Henares (Madrid)
Posts: 87
Poder: 21
gorsan Va por buen camino
Código Delphi [-]
if ExitWindowsEx (0,0) = 0 then
  showmessage ('No puedorrr reiniciar Windows');

if ExitWindowsEx (1,0) = 0 then
  showmessage ('No puedorrr cerrar el ordenador');

if ExitWindowsEx (2,0) = 0 then
  showmessage ('No puedorrr reiniciar el ordenador');

¿por qué me da el mensaje de error Incompatible types?
¿donde esta fallando?
Se supone que la funcion ExitWindowsEx esta en Windows.dcu ¿no?
Responder Con Cita
  #8  
Antiguo 12-03-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
ExitWindowsEx retorna BOOL

Saludos.
Responder Con Cita
  #9  
Antiguo 13-03-2009
gorsan gorsan is offline
Miembro
 
Registrado: jun 2003
Ubicación: Alcala de Henares (Madrid)
Posts: 87
Poder: 21
gorsan Va por buen camino
Necesito que se reinicie el pc. De la rutina que menciona Jhonny, es decir:
Código Delphi [-]
if ExitWindowsEx (0,0) = False then showmessage ('No puedorrr reiniciar Windows');
if ExitWindowsEx (1,0) = False then showmessage ('No puedorrr cerrar el ordenador');
if ExitWindowsEx (2,0) = False then showmessage ('No puedorrr reiniciar el ordenador');
solo se produce la (0,0), es decir, que se reinicia windows. Las otras dos, es decir, las (1,0) y (2,0), cerrar ordenador y reiniciar ordenador respectivamente no se producen.
Seguro que es porque el ordenador esta en un dominio y faltan privilegios de seguridad o no se cual es la razon.
¿alguien tiene alguna idea?
Gracias.
Responder Con Cita
  #10  
Antiguo 13-03-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Código Delphi [-]
ExitWindowsEx(0,0); // EWX_LOGOFF - Cierra los procesos y la sesión del usuario. 
ExitWindowsEx(2,0); // EWX_REBOOT - Reboot. Debes tener privilegio SE_SHUTDOWN_NAME 
ExitWindowsEx(8,0); // EWX_POWEROFF - Apagar. Debes tener privilegio SE_SHUTDOWN_NAME
Saludos.
Responder Con Cita
  #11  
Antiguo 13-03-2009
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Aqui

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #12  
Antiguo 13-03-2009
gorsan gorsan is offline
Miembro
 
Registrado: jun 2003
Ubicación: Alcala de Henares (Madrid)
Posts: 87
Poder: 21
gorsan Va por buen camino
Gracias [Lepe]. Tiene buena pinta la funcion pero no compila.
Código Delphi [-]
    AdjustTokenPrivileges(HToken, FALSE,
      TokenPriv, 0, PTokenPrivileges(NIL)^, H);
Aqui da error "ambiguous overloaded call to 'AdjustTokenPrivileges' "
Uso Windows xp SP3 y Delphi 7
¿qué esta pasando?
Responder Con Cita
  #13  
Antiguo 15-03-2009
gorsan gorsan is offline
Miembro
 
Registrado: jun 2003
Ubicación: Alcala de Henares (Madrid)
Posts: 87
Poder: 21
gorsan Va por buen camino
Por favor que alguien me diga que es lo que esta pasando. Me he quedado colgao ...
Responder Con Cita
  #14  
Antiguo 15-03-2009
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por gorsan Ver Mensaje
Código Delphi [-]
AdjustTokenPrivileges(HToken, FALSE, TokenPriv, 0, TokenPrivileges(NIL)^, H);

Aqui da error "ambiguous overloaded call to 'AdjustTokenPrivileges' "
Parece que estas tratando de sobrecargar la función....
Yo tengo Delphi 6 y no me da ese error. No se si tu versión tiene la función AdjustTokenPrivileges como parte de el, ademas de la API.

Como la llamada que interesa es a la API AdjustTokenPrivileges, trata de hacerlo así:
Código Delphi [-]
Windows.AdjustTokenPrivileges(HToken, FALSE, TokenPriv, 0, PTokenPrivileges(NIL)^, H);
Mira tambien si la has redeclarado....

Saludos.
Responder Con Cita
  #15  
Antiguo 15-03-2009
gorsan gorsan is offline
Miembro
 
Registrado: jun 2003
Ubicación: Alcala de Henares (Madrid)
Posts: 87
Poder: 21
gorsan Va por buen camino
Gracias escafandra. Por fin compila. Poniendo la palabra Windows delante de la funcion parece que se entera. Muchas gracias.
Con esto doy por concluido el hilo.
Gracias a todos por vuestra ayuda, especialmente a Roman y escafandra.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ejecucion de programa Iskariote0087 Varios 6 15-09-2006 13:56:57
reboot en inno setup? como hago? marceloalegre Varios 4 21-06-2005 06:36:01
que programa esta ejecutando un determinado archivo slat API de Windows 1 11-04-2005 17:11:23
Ejecucion de un programa en una PC silviodp Varios 3 23-01-2004 01:53:09
programa en ejecucion??? Tanix Varios 2 11-12-2003 14:15:39


La franja horaria es GMT +2. Ahora son las 23:54:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi