我正在使用Windows XP。我如何编写一个简单的脚本,在我执行我的应用程序中设置的触发点时,会自动将我从此帐户中注销并登录到此计算机上的另一个帐户?
请帮忙。
答案 0 :(得分:2)
您需要在另一个帐户上使用Wat吗?如果你想在另一个帐户os.system上运行一些命令,runas会帮助你。
答案 1 :(得分:1)
要注销,请使用ExitWindowsEx()
(0)呼叫EWX_LOGOFF
。要在之后自动登录,请将DefaultUserName
和DefaultPassword
写入HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
。您可能还需要将AutoAdminLogon
设置为1.不要忘记稍后删除注册表项,或者只是继续登录该用户。
在python中,你可以使用ctypes来调用函数,使用_winreg来写入注册表。
# setup login
from _winreg import *
key = OpenKey(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon', 0, KEY_ALL_ACCESS)
SetValueEx(key, "DefaultUserName", 0, REG_SZ, "username")
SetValueEx(key, "DefaultPassword", 0, REG_SZ, "password")
SetValueEx(key, "AutoAdminLogon", 0, REG_DWORD, 1)
CloseKey(key)
# logoff
import ctypes
ctypes.windll.user32.ExitWindowsEx(0,0)
答案 2 :(得分:0)
我将在这里讨论,并建议可能没有任何Python库可以直接执行此操作。相反,您需要从Python调用一些C win32函数。
我认为你最好的选择是把它分成两个单独的问题。
第一个问题是“如何在Win32中以编程方式启动注销并以其他用户身份登录?”
即使他们不熟悉Python,也希望有些Windows专家能够回答这个问题。
我对此并不了解,但听起来非常雄心勃勃。可能会触发注销,但会触发以不同用户身份登录(可能会停止向用户询问密码)
第二个问题是“我如何在Python中调用这些win32函数?”
这是一个相当常规的请求,应该有StackOverflow的专业知识来帮助。