Тема: AHK: Быстрая смена пользователя
Написал небольшой скриптик для быстрой "смены" пользователей. Логин и пароль обоих пользователей лежат в .ini файле рядом с .exe`шником. Файл .ini имеет тоже имя, что и .exe(Например: CngUser.exe и CngUser.ini).
Скрипт начинает работу сразу после запуска .exe и если текущий пользователь не совпадает с User1 из .ini файла, то меняет пользователя на User1, иначе меняет на User2
Тело .ahk скрипта:
SplitPath, A_ScriptName,,,, name_of_exe
IniRead, u_name1, %A_ScriptDir%\%name_of_exe%.ini, User1, username
IniRead, u_pwd1, %A_ScriptDir%\%name_of_exe%.ini, User1, password
IniRead, u_dmn1, %A_ScriptDir%\%name_of_exe%.ini, User1, domain
IniRead, u_name2, %A_ScriptDir%\%name_of_exe%.ini, User2, username
IniRead, u_pwd2, %A_ScriptDir%\%name_of_exe%.ini, User2, password
IniRead, u_dmn2, %A_ScriptDir%\%name_of_exe%.ini, User2, domain
Process, Exist, Explorer.exe
PID := ErrorLevel
h_process := DllCall("OpenProcess", UInt, 0x1, Int, 0, UInt, PID) ; 0x1 — право доступа «PROCESS_TERMINATE»
DllCall("TerminateProcess", UInt, h_process, UInt, 1)
DllCall("CloseHandle", UInt, h_process)
Sleep, 1000
if (A_UserName != u_name1)
{
u_name = %u_name1%
u_pwd = %u_pwd1%
u_dmn = %u_dmn1%
}
else
{
u_name = %u_name2%
u_pwd = %u_pwd2%
u_dmn = %u_dmn2%
}
RunAs, %u_name%, %u_pwd%, %u_dmn%
Run %A_WinDir%\Explorer.exe
RunAs
Return
Содержание .ini файла:
[User1]
username=текущий_пользовател
password=текущий_пароль
domain=текущий_домен
[User2]
username=пользователь2
password=пароль2
domain=домен2
За основу взят скрипт из коллекции форума: AHK: Завершение процесса explorer.exe (без перезапуска Проводника)
Буду рад любым исправлениям\дополнениям.