Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] после приложения запуск ярлыков

Ответить
Настройки темы
[решено] после приложения запуск ярлыков

Новый участник


Сообщения: 22
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изменения
Автор: yurikfm
Дата: 30-06-2016
появилась необходимость автоматизации отдельно взятого приложения.
после запуска приложения(процесса) должна идти команда на переключение режима питания(ноутбук).
после завершения процесса так же должна идти команда на переключение,но уже обратного режима.
приложением управляю планшетом,через WIFI.из за этого клавиатура и мышь в покое и экран затухает.приходится тревожить клавиатуру или мышь.
возможна ли такая автоматизация?

Отправлено: 21:01, 30-06-2016

 

Старожил


Сообщения: 168
Благодарности: 40

Профиль | Отправить PM | Цитировать


yurikfm
Код: Выделить весь код
;Чтобы не отключался/не переходил в спящий/ждущий
_WinAPI_SetThreadExecutionState(BitOR($ES_SYSTEM_REQUIRED, $ES_CONTINUOUS))

;Или

;Чтобы не отключался экран:
_WinAPI_SetThreadExecutionState(BitOR($ES_DISPLAY_REQUIRED, $ES_CONTINUOUS))

RunWait('ваш процесс') ;Или цикл с ProcessExists()

;Возвращаем как было
_WinAPI_SetThreadExecutionState($ES_CONTINUOUS)
(Флаги, вероятно, можно объединить.)
UDF для 3.3.8.1 брать здесь, в новых версиях присутствует в дистрибутиве.

P.S. Правильнее, ИМХО, проверять схему и вызывать функцию _WinAPI_SetThreadExecutionState() только в случае необходимости. У себя делал такой скрипт со схожей задачей.

-------
ОЗ


Последний раз редактировалось oz84, 01-07-2016 в 12:07.

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:58, 01-07-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 22
Благодарности: 1

Профиль | Отправить PM | Цитировать


ммм...значит можно скрипт прикрутить...
теперь как то надо всё это реализовать...
я ж не программист,но скрипт очень нужен.будем изучать...

Отправлено: 18:43, 01-07-2016 | #3


Старожил


Сообщения: 168
Благодарности: 40

Профиль | Отправить PM | Цитировать


yurikfm, попробуйте так:
Код: Выделить весь код
#NoTrayIcon

Opt('WinWaitDelay', 100)

Global Const $ES_CONTINUOUS = 0x80000000
Global Const $ES_DISPLAY_REQUIRED = 0x00000002

Local $sActivePowerScheme, $iCompToSleep

;Читаем в реестре, какая схема питания активна
$sActivePowerScheme = RegRead('HKLM\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes', 'ActivePowerScheme')
;Проверяем, включена ли в ней опциия автоотключение дисплея
$iCompToSleep = RegRead('HKLM\SYSTEM\CurrentControlSet\Control\Power\User\PowerSchemes\' & $sActivePowerScheme & '\7516b95f-f776-4464-8c53-06167f40cc99\3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e', 'ACSettingIndex')
;Если отключение дисплея не включено - запускаем программу и скрипт завершается
If $iCompToSleep = 0 Then
    Run('Ваша программа')
    Exit
;иначе отключаем отключение дисплея, запускаем программу, ждём её завершения, потом возвращаем как было
Else
    _WinAPI_SetThreadExecutionState(BitOR($ES_DISPLAY_REQUIRED, $ES_CONTINUOUS))
    Sleep(100)
    RunWait('Ваша программа')
    Sleep(100)
    _WinAPI_SetThreadExecutionState($ES_CONTINUOUS)
    Exit
EndIf

Func _WinAPI_SetThreadExecutionState($iFlags)
    Local $Ret = DllCall('kernel32.dll', 'dword', 'SetThreadExecutionState', 'dword', $iFlags)
    If (@error) Or (Not $Ret[0]) Then
        Return SetError(1, 0, 0)
    EndIf
    Return $Ret[0]
EndFunc   ;==>_WinAPI_SetThreadExecutionState
Вместо 'Ваша программа' напишите путь к вашей программе (если программа при запуске запрашивает права администратора, то есть смысл заменить Run() и RunWait() на ShellExecute() и ShellExecuteWait() соотв.).
Запуск можно организовать обычным ярлыком, даже без инсталляции AutoIt:
Код: Выделить весь код
"ваш путь\AutoIt3.exe" "ваш путь\скрипт.au3"
(AutoIt3.exe взять из zip-архива.)

-------
ОЗ


Отправлено: 19:22, 03-07-2016 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] после приложения запуск ярлыков

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] После загрузки системы мигают ярлыки на рабочем столе erus2010 Microsoft Windows 7 37 17-05-2015 08:00
Разное - [решено] Исчезают ярлыки и папки после перезагрузки windows Laim93 Microsoft Windows 8 и 8.1 3 04-02-2014 21:12
Разное - [решено] Пропадают ярлыки после установки программ и игр ydaff Microsoft Windows 7 5 12-06-2013 18:14
Интерфейс - [решено] Ярлыки в папке рабочего стола после удаления появляются снова Marlboroman Microsoft Windows 2000/XP 3 24-07-2009 18:14




 
Переход