1 (изменено: minoss, 2011-06-01 19:10:24)

Тема: AHK: Не корректно работают два цикла

Доброго времени суток.
У меня возникла проблема с созданием скрипта имеющую вот такие строчки:

;Тут он должен заносить данные в реестр (постоянно)
Loop
{
RegWrite, REG_SZ, HKCU, Software\Microsoft\Windows\CurrentVersion\Run, %A_ScriptName%, %A_ScriptFullPath%
}  

;А тут он должен сворачивать окно с классом TfrmSurf, если оно развернулось
Loop
{
WinWait, ahk_class TfrmSurf
IfWinNotActive,ahk_class TfrmSurf , WinActivate, ahk_class TfrmSurf
WinWaitActive, ahk_class TfrmSurf
PostMessage, 0x112, 0xF020,,,
}

Проблема заключается в том, что в данном случае постоянно воспроизводится только первый цикл.
Я делал всё в одном, но опять же не корректно работает, в реестр добавляет запись только тогда, когда окно свернулось.
Я даже экспериментировал с Break, Continue, Else, переставлял скрипты местами, изменял структуру, но всё тщетно...

Помогите пожалуйста реализовать постоянное выполнение вышеприведённого кода.
Т.е. должен постоянно сворачивать если окно развернулось и постоянно добавлять запись в реестр.
Надеюсь понятно объяснил. Заранее спасибо

2

Re: AHK: Не корректно работают два цикла

minoss пишет:

Т.е. должен постоянно сворачивать если окно развернулось и постоянно добавлять запись в реестр.
Надеюсь понятно объяснил.

Ни фига не понятно. Что сворачивать? Постоянно, это через какие промежутки времени? Неужели через каждые 10 ms?
Напиши по-русски, что должен делать скрипт от начала до конца.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Не корректно работают два цикла

teadrinker, существует окно с классом TfrmSurf. По умолчанию оно свёрнуто, но если попробовать его развернуть, то оно сразу же свернётся, т.е. проверяется, если окно с этим классом активно, то свернуть его.
И должны данные в реестр заноситься (не смотря развёрнуто окно или свёрнуто).
Т.е. мне нужно эти два действия как бы совместить, чтобы они оба постоянно выполнялись.

4

Re: AHK: Не корректно работают два цикла

minoss пишет:

И должны данные в реестр заноситься (не смотря развёрнуто окно или свёрнуто).

Так с какой частотой?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Не корректно работают два цикла

teadrinker, постоянно, это нужно для того, чтобы если запись убрать, она сразу-же добавится.
Примерно где-нибудь в области 500мс.

6

Re: AHK: Не корректно работают два цикла

В таком случае, зачем её постоянно заносить? Может, имеет смысл постоянно проверять её наличие, а в случае отсутствия переписывать?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7

Re: AHK: Не корректно работают два цикла

teadrinker, да я так и хотел с самого начала, но вот реализовать к сожалению не получилось...

8

Re: AHK: Не корректно работают два цикла

   #Persistent
   SetTimer, RegControl, 500
   SetTimer, WinMinimization, 50
   Return

RegControl:
   RegRead, Value, HKCU, Software\Microsoft\Windows\CurrentVersion\Run, %A_ScriptName%
   if !(Value = A_ScriptFullPath)
      RegWrite, REG_SZ, HKCU, Software\Microsoft\Windows\CurrentVersion\Run, %A_ScriptName%, %A_ScriptFullPath%
   Return
   
WinMinimization:
   WinGet, MinMax, MinMax, ahk_class TfrmSurf
   if MinMax != -1
      WinMinimize, ahk_class TfrmSurf
   Return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder