А не нужно эту кнопку программировать. Нужно отслеживать закрытие скрипта:запрограммировать именно саму кнопку "Завершения работы" у меня в свое время не получилось
#include <WindowsConstants.au3>
GUICreate("Au3_Dummy")
GUIRegisterMsg($WM_CLOSE, "WM_CLOSE")
;~ OnAutoItExitRegister("OnExit")
While GUIGetMsg() <> -3
WEnd
Func WM_CLOSE($hWndGUI, $MsgID, $WParam, $LParam)
OnExit()
EndFunc
Func OnExit()
MsgBox(64, 'Title', 'Script is terminated.')
EndFunc
а этот скрипт случаем не завершится не успев ничего сделать? к примеру моя винда не спрашивает что делать с программами, которые не завершились, а просто отрубает ихА не нужно эту кнопку программировать. Нужно отслеживать закрытие скрипта:
По идее Windows отправляет всем программам сообщение WM_CLOSE при завершений работы, если программа на это не реагирует это её проблема, в нашем же случае мы ждём этого сообщения.моя винда не спрашивает что делать с программами, которые не завершились
#Include <WinAPIEx.au3>
OnAutoItExitRegister('_Quit')
_WinAPI_EmptyWorkingSet()
While 1
Sleep(1000)
WEnd
Func _Quit()
If _WinAPI_GetCDType('E:') Then
CDTray('E:', 'open')
EndIf
EndFunc ;==>_Quit
TERMINAL сказал(а):Чтобы скрипт не висел постоянно в процессах, а вызывался только после нажатия ЗАВЕРШЕНИЯ РАБОТЫ.
TERMINAL сказал(а):Мне не нужно каждый раз открывать СDROM, нужно открыть в том случае если имеется определённый диск (поиск по файлу)...
HotKeySet('!x', '_exit')
Func _exit()
Exit
EndFunc
While 1
Sleep(100)
If WinExists('','В&ыключение') Then
ControlDisable('','В&ыключение',20103) ; деактивируем Выключение. у меня ID кнопки выключения 20103.
; тут можно узнать позиции всех контролов выключения
; снять например скриншот окна выключения и создать свой с фоном скрина заменив своими кнопками
;
; извиняйте за нубо-код, предлагаю просто как концепцию
;
; может можно вообще как то заменить кнопку Выключения на вызов своего скрипта
; не стал углублятся :)
EndIf
WEnd
Yashied сказал(а):
- Создай .bat (.cmd) файл с вызовом твоей программы проверки диска:
start "C:\Program Files\CDCheck\CDCheck.exe"
- В диалоге "Run..." введи "gpedit.msc" и нажми OK.
- Перейди в раздел "Computer Configuration\Windows Settings\Scripts (Startup/Shutdown)".
- Щелкни два раза на "Shutdown".
- Нажми "Add...", введи путь к созданному ранее .bat файлу и нажми OK - OK.
Теперь при завершении работы будет вызываться .bat файл, который в свою очередь запустит CDCheck.exe.
TrayTip('Выключение', 'ждите 50 секунд', 10)
Sleep(10000)
TrayTip('Выключение', 'ждите 40 секунд', 10)
Sleep(10000)
TrayTip('Выключение', 'ждите 30 секунд', 10)
Sleep(10000)
TrayTip('Выключение', 'ждите 20 секунд', 10)
Sleep(10000)
TrayTip('Выключение', 'ждите 10 секунд', 10)
Sleep(10000)
TrayTip('Выключение', 'Выключаюсь', 1)
c:\script.exe
(цитата из этой темы: http://autoit-script.ru/index.php?topic=4227.msg30783;topicseen#new)Garrett сказал(а):
В диалоге "Run..." введи "gpedit.msc" и нажми OK
VladUs сказал(а):В Windows Home Edition работать не будет.
Не забывайте... в этой версии нет групповых политик
for $i = 5 to 0 Step -1
TrayTip('Выключение', 'ждите ' & $i*10 & ' секунд', 10)
IniWrite('c:\script.ini', '', 'time' & $i, $i*10)
Sleep(10000)
Next
TrayTip('Выключение', 'Выключаюсь', 1)
IniWrite('c:\script.ini', '', 'time', 'Выключаюсь')
Yashied сказал(а):
- В диалоге "Run..." введи "gpedit.msc" и нажми OK.
- Перейди в раздел "Computer Configuration\Windows Settings\Scripts (Startup/Shutdown)".
- Щелкни два раза на "Shutdown".
- Нажми "Add...", введи путь к созданному ранее .bat файлу и нажми OK - OK.
Sky-WaLkeR сказал(а):Давно это интересовало, не подскажешь как это сделать (или хотя бы куда смотреть)?