Control-Alt-Delete desde python o línea de comando

He investigado un poco, pero me gustaría poder llamar a control-alt-delete desde python. Si eso no es posible, es posible llamarlo desde la línea de comandos porque entonces podría usar ese comando en python porque puedo llamar líneas de comando en python. Si alguien pudiera apuntarme en la dirección correcta sería genial. esto es para un administrador de tareas escrito con wxPython. edición: estoy intentando iniciar la seguridad de Windows y, desde una respuesta de usuario, lo intenté

import win32com.client shell = win32com.client.Dispatch("WScript.Shell") shell.SendKeys("{CONTROL}{ALT}{DELETE}") 

y me sale este error

 Traceback (most recent call last): File "C:/Python27/tescontrol.py", line 4, in  shell.SendKeys("{CONTROL}{ALT}{DELETE}") File "", line 2, in SendKeys com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147024809), None) 

Seguramente te refieres a activar la ventana de seguridad de Windows. En este caso:

 import win32com.client shell = win32com.client.Dispatch("WScript.Shell") shell.SendKeys("^(%{DELETE})") 

ACTUALIZAR

El código anterior parece no funcionar debido a las razones descritas en otras publicaciones. En ese caso, la alternativa es crear una ventana similar y llamar desde Python a los diferentes progtwigs / funciones llamados por la ventana de seguridad de Windows real.

Al leer los comentarios de OP a la pregunta original, la necesidad final de OP es cambiar la contraseña de un usuario. Esto se puede hacer con:

 from win32com import adsi ads_obj = adsi.ADsGetObject("WinNT://localhost/%s,user" % username) ads_obj.SetPassword(password) 

Acabo de probar esto en mi PC, así como la información final (aunque no necesariamente correcta ; esto depende del OP :-)).

ACTUALIZACIÓN 2: Copiar la última como una respuesta por separado ya que los comentarios parecen indicar que todas las respuestas no funcionan. Esto es correcto para la proposición SendKeys , que no funciona.

Si lo que quiere hacer es apagar o reiniciar el sistema, Windows tiene un comando de “apagado” y los de Linux generalmente tienen los comandos de “apagar” y “reiniciar”.

Revisa el siguiente hilo:

De acuerdo con esto, VNC usa algo como esto:

 PostMessage HWND_BROADCAST, WM_HOTKEY, 0, MakeLong(MOD_ALT Or MOD_CONTROL, VK_DELETE) 

Sospecho que necesitarías usar ctypes o PyWin32 para hacer algo como esto. Probablemente optaría por ctypes, ya que es multiplataforma, sin embargo, incluso con ctypes probablemente deba escribir un método especial para cada sistema operativo que admita.

Por lo que sé, Ctrl-Alt-Delete está protegido por razones de seguridad, por lo que los progtwigs no pueden usarlo. (Al menos en Windows 7 y antes.)

Al leer los comentarios de OP, su necesidad original era cambiar la contraseña del usuario. De hecho, esto se puede hacer con:

 from win32com import adsi ads_obj = adsi.ADsGetObject("WinNT://localhost/%s,user" % username) ads_obj.SetPassword(password) 

Puede utilizar la biblioteca vncdotool en:

lib

Y usa vncdotool por:

 os.system("vncdotool key ctrl-alt-del")