Что нового

[Автоматизация] Лаунчер для автосёрфинга

[email protected]

Новичок
Сообщения
2
Репутация
0
Версия AutoIt: 3. и выше

Описание: Нужен лаунчер, который запускал программу автосёрфинга с определёнными параметрами и скрывал сёрфинг, в случае закрытия программы сёрфинга перезапускал через 30 секунд. Это не майнинг, обычный автосёрфинг. По возможности чтобы прописывал себя в реестре, в ветке автозагрузки.

Примечания: Кто может пишите в skype: Jony_Claus, готов на платной основе.
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Это будет примерно так:
Код:
Global $pid, $t = False

_StartProg()
While 1
	If Not ProcessExists($pid) And $t = False Then
		$t = True
		AdlibRegister("_StartProg", 30000)
	EndIf
	Sleep(1000)
WEnd

Func _StartProg()
	$t = False
	AdlibUnRegister("_StartProg")
	$pid = Run("serfing.exe", "", @SW_HIDE)
EndFunc   ;==>_StartProg

Вместо serfing.exe вставь имя программы и параметры.
 

Aleksandr Prilutskiy

Знающий
Сообщения
29
Репутация
9
Вот, собственно что у меня получилось и в целом устроило "заказчика":

Код:
; было пожелание, чтобы программа отображала себя в списке задач как "Хост-процесс Windows задач"
#Region AutoIt3Wrapper directives section
#AutoIt3Wrapper_Res_Description=Хост-процесс Windows задач
#EndRegion AutoIt3Wrapper directives section

Opt("TrayIconHide", 1)
Global $sExecLine		= ""	; путь и имя исполняемого файла контролируемой программы с пареметрами командной строки
Global $sWindowTitle	= ""	; имя окна при запуске контролируемой программы
Global $sWindowTitle2	= ""	; через некоторое время после запуска контролируемая програма меняет свое имя
Global $State = 0				; флаг: если 1, то контролируемая программа запущена
Global $Timer = 0				; таймер ожидания повторной загрузки контролируемой программы

While True
 If WinExists($sWindowTitle) Then
  $State = 1
  WinMove($sWindowTitle, "", -1000, -1000, 0, 0)
  WinSetState($sWindowTitle, "", @SW_HIDE)
 ElseIf WinExists($sWindowTitle2) Then
  $State = 1
  WinMove($sWindowTitle2, "", -1000, -1000, 0, 0)
  WinSetState($sWindowTitle2, "", @SW_HIDE)
 ElseIf $State == 1 Then
  $State = 0
  $Timer = TimerInit()
 EndIf
; было пожелание, чтобы если контролируемоая программа выгружается из памяти, загружать её заново через 30 секунд
 If TimerDiff($Timer) < 30000 Then
  Sleep(100)
  ContinueLoop
 EndIf
 If Not WinExists($sWindowTitle) And Not WinExists($sWindowTitle2) Then
  $State = 1
  ShellExecute("nssm", $sExecLine , @ScriptDir)
  While Not WinExists($sWindowTitle) And Not WinExists($sWindowTitle2)
   Sleep(10)
  WEnd
 EndIf
 $Timer = TimerInit()
WEnd


(индивидуальные данные я удалил)
 
Верх