从python或命令行中控制Alt Delete

从python或命令行中控制Alt Delete,python,command-line,wxpython,Python,Command Line,Wxpython,我做了一些研究,但我希望能够从python中调用control alt delete。如果不可能,那么可以从命令行调用它,因为我可以在python中使用该命令,因为我可以在python中调用命令行。如果有人能给我指出正确的方向那就太好了。这是针对用wxPython编写的任务管理器的。 编辑: 我正在尝试启动windows安全性,我尝试了一个用户答案 import win32com.client shell = win32com.client.Dispatch("WScript.Shell")

我做了一些研究,但我希望能够从python中调用control alt delete。如果不可能,那么可以从命令行调用它,因为我可以在python中使用该命令,因为我可以在python中调用命令行。如果有人能给我指出正确的方向那就太好了。这是针对用wxPython编写的任务管理器的。 编辑: 我正在尝试启动windows安全性,我尝试了一个用户答案

import win32com.client

shell = win32com.client.Dispatch("WScript.Shell")
shell.SendKeys("{CONTROL}{ALT}{DELETE}")
我得到了这个错误

Traceback (most recent call last):
    File "C:/Python27/tescontrol.py", line 4, in <module>
      shell.SendKeys("{CONTROL}{ALT}{DELETE}")
    File "<COMObject WScript.Shell>", line 2, in SendKeys
com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147024809), None)
回溯(最近一次呼叫最后一次):
文件“C:/Python27/tescontrol.py”,第4行,在
SendKeys(“{CONTROL}{ALT}{DELETE}”)
SendKeys中第2行的文件“”
com_错误:(-2147352567,‘发生异常’,(0,无,无,无,0,-2147024809),无)

如果您想关闭或重新启动系统,Windows有“shutdown”命令,linux通常有“shutdown”和“reboot”命令。

您的意思肯定是激活Windows安全窗口。在这种情况下:

import win32com.client

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

由于其他帖子中描述的原因,上述代码似乎不起作用。在这种情况下,另一种方法是创建一个类似的窗口,并从Python调用真正的Windows安全窗口调用的不同程序/函数

在阅读OP对原始问题的评论时,OP的最终需要是更改用户的密码。这可以通过以下方式实现:

from win32com import adsi
ads_obj = adsi.ADsGetObject("WinNT://localhost/%s,user" % username)
ads_obj.SetPassword(password)
from win32com import adsi
ads_obj = adsi.ADsGetObject("WinNT://localhost/%s,user" % username)
ads_obj.SetPassword(password)
我刚刚在我的电脑上测试了这一点,最终信息也是如此(虽然不一定正确;这取决于OP:-)


更新2:复制后面的答案作为一个单独的答案,因为注释似乎表明所有答案都不起作用。这对于不起作用的SendKeys命题是正确的。

检查以下线程:

根据它的说法,VNC使用如下内容:

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

我怀疑您需要使用ctypes或PyWin32来执行类似的操作。我可能会选择ctypes,因为它是跨平台的,然而,即使使用ctypes,您也可能需要为您支持的每个操作系统编写一个特殊的方法。

据我所知,Ctrl-Alt-Delete受到安全保护,因此程序无法使用它。(至少在Windows 7及以前版本中是如此。)

阅读OP的评论时,他/她最初的需要是更改用户的密码。事实上,这可以通过以下方式实现:

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

您可以使用vncdool库 地址:

并通过以下方式使用VNCdool:

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

您实际上想做什么?哪些操作系统?根据本文,这是不可能的,从Python访问命令的角度来看,这将被视为Windows错误。显然,ctrl+alt+del是一组安全的按键,只能从操作系统中响应:,不确定命令提示,基本的谷歌搜索没有显示任何有希望的结果。。。可能会导致您的目标状态我的操作系统是windows,我正在尝试启动安全屏幕,因为我喜欢这些选项,我不认为您可以从python更改用户密码这是我将使用的一个功能,这就是为什么我要安装itafaik这不是他想要的。。。但如果是,您也可以使用win32api。。。。但这真的应该是一个评论。我们不能否决一个答案,因为它的作者未能正确猜出一个措辞糟糕的问题+1(使其至少为0)它不适用于在bios/os中专门处理的alt ctl delete。不适用于windows 8我用错误更新了问题否,它不是。您必须查看VNC的代码,然后将其移植到Python。这看起来像是我在PyWin32中看到的东西,但我知道你也可以使用ctypes来做这类事情。我对python有两个月的了解,所以我不知道如何使用Google来做这件事-例如,我在Google上搜索ctypes HWND_广播,得到了这样一个链接:你不能阻止它,但你可以模拟它