Что нового

[Автоматизация] Закрытие окна программы при ее неиспользовании в течении определенного времени

sterlik

Новичок
Сообщения
2
Репутация
0
Есть небольшой код (см. ниже). Закрывает окно программы если оно не активно в течении определенного времени. Надо запустить exe-файл политикой под system. Запускаем. Но тогда он ждет это окно в сеансе system.
Как добраться до окон открывающихся в сеансе работающего пользователя?
Код:
Opt("TrayIconHide", 1)
While 1
	$title='Блокнот'
if WinWaitActive($title,"",30)=0 then WinClose($title)
WEnd
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
sterlik,
Раз 5 прочитал ваш пост и нечего так и не понял :blink:

PS Вы слышали о таком теге как [AutoIt] ?
 

DoKel

Любитель
Сообщения
15
Репутация
0
Zaramot , не знаю, мне кажется я понял... Хотя про тег абсолютно верно!
sterlik , извиняюсь, я внекоторых вопросах newbie, объясни - как, а главное зачем ты запускаешь свой скрипт под SYSTEM'ой?
 
Автор
S

sterlik

Новичок
Сообщения
2
Репутация
0
Наверное вы об этом
Код:
Opt("TrayIconHide", 1)
While 1
	$title='Блокнот'
if WinWaitActive($title,"",30)=0 then WinClose($title)
WEnd


Пояснения: есть программы которые используют конкуретный доступ к лицензиям, разработчик на уровне сервера лицензий не заложил функционал по отслеживнию не использования и освобождения лицензии по таймауту, поэтому пробую действовать на уровне клиента.
Если окно приложения не активно некоторое время, то он скорее всего им не пользуется, значит закрываем его.
Под system запускать, что бы "умный" пользователь не зашел в диспетчер задач и не вырубил процесс.
 

ArtInt

Знающий
Сообщения
135
Репутация
18
Покинь меня русский речь :Censored:
 

Fever

Скриптер
Сообщения
308
Репутация
112
Может эта ф-ция подойдет? :scratch:
Код:
_WinAPI_EnumWindows([$fVisible = True [, $hwnd = Default]])

Код:
#include <WinAPI.au3>
Opt('MustDeclareVars', 1)

_Main()

Func _Main()
	Local $aWindows, $i, $text
	$aWindows = _WinAPI_EnumWindows()
	For $i = 1 To $aWindows[0][0]
		$text = "Window Handle: " & $aWindows[$i][0] & @LF
		$text &= "Window Class: " & $aWindows[$i][1] & @LF
		$text &= "Window Title: " & WinGetTitle($aWindows[$i][0]) & @LF
		$text &= "Window Text: " & WinGetText($aWindows[$i][0]) & @LF
		$text &= "Window Process: " & WinGetProcess($aWindows[$i][0])
		MsgBox(0, "Item " & $i & " of " & $aWindows[0][0], $text)
	Next
EndFunc   ;==>_Main


OffTopic:
ArtInt ???
 
Верх