Apagar el sistema2
Arturo José Pérez Verdú
ajpv en alu.ua.es
Lun Dic 23 09:38:16 CET 2002
Se me olvido pegar el código que utilizo:
#
# Adjustar Privilegios
#
def AdjustPrivilege(self, enable = 1):
flags = TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY
htoken = win32security.OpenProcessToken(win32api.GetCurrentProcess(),
flags)
id = win32security.LookupPrivilegeValue(None, SE_SHUTDOWN_NAME)
if enable:
newPrivileges = [(id, SE_PRIVILEGE_ENABLED)]
else:
newPrivileges = [(id, 0)]
win32security.AdjustTokenPrivileges(htoken, 0, newPrivileges)
#
# Detener el sistema
#
def Halt(self):
self.AdjustPrivilege(1)
try:
win32api.InitiateSystemShutdown(None, "Apagando el sistema", 60, 1, 0)
finally:
self.AdjustPrivilege(0)
> Estoy usando Python bajo windows XP y ME. Mi intención es apagar el
sistema
> después de acabar una serie de tareas automatizadas a altas horas de la
> noche. Utilizo las extensiones para windows de python donde esta el modulo
> win32api. Utilizo la función InitiateSystemShutdown... y realmente se
inicia
> el cierre del sistema. El problema es que no llega a apagarse del todo. Se
> queda con el mensaje de: "ahora puede apagar el equipo".
> En un principio he pensado que podria ser alguna opción de windows,
pero...
> el sistema se apaga bien desde el menu de inicio->apagar. Luego no
entiendo
> porque al hacer la llamada através del modulo win32api no se cierra.
>
> ¿Alguna sugerencia?
>
> Gracias.
>
> nota: para iniciar el cierre del sistema cambio los permisos, etc... y
todo
> lo que hay que hacer para que el cierre se inicie, pero no si hay ahi
algun
> flag que modifique el modo de cerrarse.
Más información sobre la lista de distribución Python-es