Что нового

Вызвать окно выхода из Windows

Сообщения
30
Репутация
-1
Вызвать окно выхода из Windows с помощью autoit, mouseclick не предлагать :-X

wxp101_html_m28851047.png
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
это окно, которое на win+L показывается?
 

mef-t

Осваивающий
Сообщения
306
Репутация
30
Думаю, не совсем.
win+L - это блокировка окна, или выход в окно приветствия.
Думаю, тут нужно что-то другое.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Это не подойдёт?
http://autoit-script.ru/index.php?topic=14053.msg88823#msg88823
 
Автор
B
Сообщения
30
Репутация
-1
C2H5OH сказал(а):
Это не подойдёт?
http://autoit-script.ru/index.php?topic=14053.msg88823#msg88823

Вполне, только нужно другое окно, которое на скриншоте, какое у него сочетание клавиш?
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
bradu [?]
окно, которое на скриншоте
Код:
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") ; Выход
 
Автор
B
Сообщения
30
Репутация
-1

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
C2H5OH [?]
разве не это окно?
Нет. Там окно "Выход из Windows", а в вашем случае "Выключить компьютер". Кстати, а зачем Ctrl+ESC ?

bradu [?]
Дальше открытия пуска не пошло.
Что у вас выводит Au3Info на вкладках Control и Toolbar при наведении на кнопку "Выход из системы" в меню Пуск? (В Au3Info нужно отключить опцию в меню Options - Freeze)
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
bradu [?]
Это я знаю. Но чтобы вызвать окно завершения работы достаточно нажать Alt+F4 при активном рабочем столе.
Блин, при активном рабочем столе... Теперь понятно, зачем :D
 
Автор
B
Сообщения
30
Репутация
-1
InnI сказал(а):
bradu [?]
Что у вас выводит Au3Info на вкладках Control и Toolbar при наведении на кнопку "Выход из системы" в меню Пуск? (В Au3Info нужно отключить опцию в меню Options - Freeze)
Скрины
http://i63.fastpic.ru/big/2014/0626/ec/aaccb4cfacf4cc2de4dcf367bd142fec.png
http://i64.fastpic.ru/big/2014/0626/57/79bcc2569fbbc08e4fd75f4b095d3d57.png
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
C2H5OH [?]
А как руками можно дойти до окна "Выход из Windows" ?
Если компьютер входит в домен, то никак. Если компьютер к домену не подключён, то "Пуск - Выход из системы".

bradu [?]
Всё правильно, так и должно быть. Затрудняюсь ответить, почему у вас не работает, возможно из-за темы оформления. Попробуйте заменить строку
Код:
;~ ControlCommand($w, "", "ToolbarWindow321", "SendCommandID", 0)
ControlClick($w, "", "ToolbarWindow321", "left", 1, 200, 14)
 
Автор
B
Сообщения
30
Репутация
-1
C2H5OH сказал(а):
Там окно "Выход из Windows", а в вашем случае "Выключить компьютер".

:shok:

А как руками можно дойти до окна "Выход из Windows" ?

У меня вот так
http://i62.fastpic.ru/big/2014/0626/ec/6b5816b5096afee83b22dd8aa259eeec.png


Добавлено:
Сообщение автоматически объединено:

InnI сказал(а):
bradu [?]
Всё правильно, так и должно быть. Затрудняюсь ответить, почему у вас не работает, возможно из-за темы оформления. Попробуйте заменить строку
Код:
;~ ControlCommand($w, "", "ToolbarWindow321", "SendCommandID", 0)
ControlClick($w, "", "ToolbarWindow321", "left", 1, 200, 14)

А вот так работает! А теперь, как можно проверить наличие этого окна, если оно не активно, то запустить этот скрипт?
 
Автор
B
Сообщения
30
Репутация
-1
Сам додумался)
Код:
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



Добавлено:
Сообщение автоматически объединено:

А до этого, такой был скрипт ;D

Код:
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


Все, всем спасибо!
 
Верх