Что нового

[Автоматизация] Запуск файла в зависимости от активности пользователя на ПК

CRD

Новичок
Сообщения
57
Репутация
0
Версия AutoIt: 3.3.14.4

Описание: Если компьютер находится в режиме простоя более 5 минут - запустить 1.exe, если за компьютером работают - запустить 2.exe.

Примечания: Скрипт следит за активностью пользователя на ПК и в зависимости от того, пользуются компом в данный момент или нет - переключается между программами. Надеюсь понятно объяснил свои хотелки. Если нет - спрашивайте, попробую переформулировать задачу.

Спасибо большое всем, кто не прошел мимо и помог с реализацией.
 

hedji

Продвинутый
Сообщения
409
Репутация
94
Код:
While 1
$coord1 = MouseGetPos()
Sleep(300000)
$coord2 = MouseGetPos()
If $coord1[0] = $coord2[0] And $coord1[1] = $coord2[1] Then
	Run("notepad.exe")
Else
	Run("calc.exe")
EndIf
WEnd
 
Автор
C

CRD

Новичок
Сообщения
57
Репутация
0
Типа того, но не до конца ... Как к этому скрипту прикрутить проверку на запущенность процесса ? А то он мне во время теста запустил 2 калькулятора. А так же, как при открытии одной программы другая закрывалась ?
 
Автор
C

CRD

Новичок
Сообщения
57
Репутация
0
Все еще актуально ...
 
Автор
C

CRD

Новичок
Сообщения
57
Репутация
0
Нет, но под него тоже можно будет переделать в случае большой необходимости :ok:
 
Автор
C

CRD

Новичок
Сообщения
57
Репутация
0
Почитал мануал, не совсем понял, как подключить чередование 2х программ, дайте пример пожалуйста
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
Код:
#include <Timers.au3>
Global $sProcPath1 = "notepad.exe", $sProcPath2 = "calc.exe", $sProcName1 = "notepad.exe", $sProcName2 = "calc.exe", $iTimeout = 10000 ;мсек

While Sleep(250)
	If _Timer_GetIdleTime() > $iTimeout Then
		If ProcessExists($sProcName1) Then ProcessClose($sProcName1)
		If Not ProcessExists($sProcName2) Then Run($sProcPath2)
	Else
		If ProcessExists($sProcName2) Then ProcessClose($sProcName2)
		If Not ProcessExists($sProcName1) Then Run($sProcPath1)
	EndIf
WEnd
 
Автор
C

CRD

Новичок
Сообщения
57
Репутация
0
Tempo, объясни дураку, зачем создавать 5 переменных и присваивать им значения ? Разве нельзя все сразу в коде прописать:
Код:
#include <Timers.au3>

While Sleep(250)
    If _Timer_GetIdleTime() > 300000 Then
        If ProcessExists("notepad.exe") Then ProcessClose("notepad.exe")
        If Not ProcessExists("calc.exe") Then Run("calc.exe")
    Else
        If ProcessExists("calc.exe") Then ProcessClose("calc.exe")
        If Not ProcessExists("notepad.exe") Then Run("notepad.exe")
    EndIf
WEnd
Не ?
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
CRD, для наглядности примера, удобства изменения. Надеюсь вы поняли где нужно использовать название процесса, а где путь для его запуска
 
Автор
C

CRD

Новичок
Сообщения
57
Репутация
0
Tempo, спасибо за разъяснения. Да, логику понял :beer:
 
Верх