C2H5OH сказал(а):Это не подойдёт?
http://autoit-script.ru/index.php?topic=14053.msg88823#msg88823
окно, которое на скриншоте
ControlClick("[class:Shell_TrayWnd]", "", "Button1")
$w = WinWait("[class:DV2ControlHost]")
ControlCommand($w, "", "ToolbarWindow321", "SendCommandID", 0)
$w = WinWait("[class:#32770]", "Выход из Windows")
ControlClick($w, "", "Button1") ; Отмена
;~ ControlClick($w, "", "Button2") ; Смена пользователя
;~ ControlClick($w, "", "Button3") ; Выход
Yashied сказал(а):Код:DllCall('user32.dll', 'int', 'LockWorkStation')
К сожалению не подходит.alex33 сказал(а):А это не подойдёт?
Yashied сказал(а):Код:DllCall('user32.dll', 'int', 'LockWorkStation')
Вполне, только нужно другое окно, которое на скриншоте
Send("^{ESC}")
Send("!{F4}")
Нет. Там окно "Выход из Windows", а в вашем случае "Выключить компьютер". Кстати, а зачем Ctrl+ESC ?разве не это окно?
Что у вас выводит Au3Info на вкладках Control и Toolbar при наведении на кнопку "Выход из системы" в меню Пуск? (В Au3Info нужно отключить опцию в меню Options - Freeze)Дальше открытия пуска не пошло.
Открытие пускаInnI сказал(а):Кстати, а зачем Ctrl+ESC ?
Это я знаю. Но чтобы вызвать окно завершения работы достаточно нажать Alt+F4 при активном рабочем столе.Открытие пуска
СкриныInnI сказал(а):bradu [?]
Что у вас выводит Au3Info на вкладках Control и Toolbar при наведении на кнопку "Выход из системы" в меню Пуск? (В Au3Info нужно отключить опцию в меню Options - Freeze)
Там окно "Выход из Windows", а в вашем случае "Выключить компьютер".
Если компьютер входит в домен, то никак. Если компьютер к домену не подключён, то "Пуск - Выход из системы".А как руками можно дойти до окна "Выход из Windows" ?
Всё правильно, так и должно быть. Затрудняюсь ответить, почему у вас не работает, возможно из-за темы оформления. Попробуйте заменить строкуСкрины
;~ ControlCommand($w, "", "ToolbarWindow321", "SendCommandID", 0)
ControlClick($w, "", "ToolbarWindow321", "left", 1, 200, 14)
C2H5OH сказал(а):Там окно "Выход из Windows", а в вашем случае "Выключить компьютер".
А как руками можно дойти до окна "Выход из Windows" ?
InnI сказал(а):bradu [?]
Всё правильно, так и должно быть. Затрудняюсь ответить, почему у вас не работает, возможно из-за темы оформления. Попробуйте заменить строкуСкриныКод:;~ ControlCommand($w, "", "ToolbarWindow321", "SendCommandID", 0) ControlClick($w, "", "ToolbarWindow321", "left", 1, 200, 14)
проверить наличие этого окна
If WinExists("[class:#32770]", "Выход из Windows") Then
если оно не активно, то
If Not WinActive("[class:#32770]", "Выход из Windows") Then
while 1
If WinWaitNotActive("[class:#32770]", "Выход из Windows") Then
ControlClick("[class:Shell_TrayWnd]", "", "Button1")
$w = WinWait("[class:DV2ControlHost]")
ControlClick($w, "", "ToolbarWindow321", "left", 1, 200, 14)
$w = WinWait("[class:#32770]", "Выход из Windows")
endif
wend
HotKeySet("+`", "_Quit") ; shift+ё
HotKeySet("{Esc}", "mousez")
HotKeySet("!{Tab}", "mousez")
HotKeySet("{RIGHT}", "mousez")
HotKeySet("{LEFT}", "mousez")
HotKeySet("{DOWN}", "mousez")
HotKeySet("{UP}", "mousez")
HotKeySet("{c}", "mousez")
HotKeySet("{C}", "mousez")
HotKeySet("{j}", "mousez")
HotKeySet("{J}", "mousez")
HotKeySet("+{Esc}", "mousez")
HotKeySet("!{F4}", "mousez")
sleep(1000)
$start1 = TimerInit()
$start2 = TimerInit()
MouseMove( 36, 751, 1)
MouseMove( 36, 751, 1)
MouseMove( 36, 751, 1)
MouseMove( 36, 751, 1)
MouseMove( 36, 751, 1)
MouseClick("left", 36, 751, 1, 0)
sleep(100)
MouseMove( 130, 715, 1)
MouseMove( 130, 715, 1)
MouseMove( 130, 715, 1)
MouseMove( 130, 715, 1)
MouseMove( 130, 715, 1)
MouseClick("left", 130, 715, 1, 0)
Sleep (20)
While 1
If TimerDiff($start1) > 100 then
If WinActive("Диспетчер задач Windows") or WinActive("Главное меню") Then
;If WinWaitNotActive('[REGEXPCLASS:(#32770)]') Then
WinClose("Диспетчер задач Windows")
MouseMove( 36, 751, 1)
MouseMove( 36, 751, 1)
MouseMove( 36, 751, 1)
MouseMove( 36, 751, 1)
MouseMove( 36, 751, 1)
MouseClick("left", 36, 751, 1, 0)
sleep(100)
MouseMove( 130, 715, 1)
MouseMove( 130, 715, 1)
MouseMove( 130, 715, 1)
MouseMove( 130, 715, 1)
MouseMove( 130, 715, 1)
MouseClick("left", 130, 715, 1, 0)
Sleep (20)
EndIf
$start1 = TimerInit()
EndIf
If TimerDiff($start2) > 10 then
Local $_color = 0x9AB8F6
;Local $_color = 0x003399
Local $_coordM = MouseGetPos ()
Local $_coord = PixelSearch ($_coordM[0]-25, $_coordM[1]-25, $_coordM[0]+25, $_coordM[1]+25, $_color, 100)
If Not @error Then
MouseMove(570, 288, 1)
;MouseMove(630, 370, 1)
Sleep (10)
EndIf
$start2 = TimerInit()
EndIf
WEnd
Func mousez()
MouseMove(570, 288, 0)
EndFunc
Func _Quit()
Exit
EndFunc