2010-11-11 106 views
2

我正在使用Windows XP。我如何編寫一個簡單的腳本,在執行我在應用程序中設置的觸發點後自動將我從該帳戶中註銷並登錄到此計算機上的另一個帳戶?Python腳本自動切換用戶

請幫忙。

回答

2

笏你需要做另一個帳戶?如果你想在另一個帳戶上運行一些命令,os.system和runas會幫助你。

0

我打算在這裏出去走走,並建議可能沒有任何Python庫可以直接執行此操作。相反,你需要從Python調用一些C++ win32函數。

我認爲你最好的選擇是把它分成兩個單獨的問題。

第一個問題是「我如何以編程方式在Win32中啓動註銷並以其他用戶身份登錄?」

即使他們不熟悉Python,也希望能被某些Windows專家解答。

我對此不太瞭解,但這聽起來非常有抱負。觸發註銷可能是可能的,但觸發作爲不同用戶登錄(可能會停止詢問用戶密碼)

第二個問題是「我如何從Python內部調用這些win32函數? 「

這是一個相當常規的請求,應該有StackOverflow的專業知識來提供幫助。

+0

第二個問題在這裏:http://stackoverflow.com/questions/1025029/how-to-use-win32-apis-with-python – 2010-11-11 13:27:50

1

要註銷,請致電ExitWindowsEx()EWX_LOGOFF(0)。要自動登錄後,請將DefaultUserNameDefaultPassword寫入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)