1

Тема: AHK: В разных активных окнах запускать разные группы скриптов

Добрый день , в общем запускать группы скриптов и выгружать я научился , даже править реестр кое где , но вот с IfWinActive почемуто не могу разобраться,задача следующего плана :
при активном (развернутом) окне Age of Conan запустить 12 скриптов (группа№1), при сворачивании его выгрузить группу №1 и загрузить группу №2 , при обратной активации полноэкранного режима Age of Conan выгрузить группу №2 и загрузить группу №1 соотвецтвенно по кругу.
чтобы сразу глубоко не заморачиваться , решил сделать банальную проверку на звуках выглядит так :

IfWinActive, Age of Conan
{
SoundBeep, 750, 500 ; выгрузка скриптов группы №2 ,загрузка группы №1
}
else
{
SoundBeep ; выгрузка скриптов группы №1 ,загрузка группы №2
}
return

скрипт выполняется 1 раз (пикает),и сразу сам выгружается , т.е. ни о каких "обратных" действиях речи быть не может ,прикручиваю цикл :

loop
IfWinActive, Age of Conan
{
SoundBeep, 750, 500 ; выгрузка скриптов группы №2 ,загрузка группы №1
}
else
{
SoundBeep ; выгрузка скриптов группы №1 ,загрузка группы №2
}
return

проверяем , проходит циклический писк одной тональности при активном окне , и другой тональности при сворачивании ,т.е. окно Age of Conan разпознаеться верно , это уже хорошо , но мне нужно чтобы скрипты разных групп загружались по 1му разу при сворачивании и разворачивании соотвецтвенно , а не постоянно происходила выгрузка и загрузка , пробовал #IfWinActive ahk_class Age of Conan , If WinActive("Age of Conan") , тотже результат , помогите пожалуйста.

2

Re: AHK: В разных активных окнах запускать разные группы скриптов

flag := 0
loop
{
 IfWinActive, Age of Conan
 {
  if !flag
  {
   SoundBeep, 750, 500 ; выгрузка скриптов группы №2 ,загрузка группы №1
   flag := 1
  }
 }
 else
 {
  if flag
  {
   SoundBeep ; выгрузка скриптов группы №1 ,загрузка группы №2
   flag := 0
  }
 }
 sleep, 1000
}
return

3

Re: AHK: В разных активных окнах запускать разные группы скриптов

спасибо добрый человек ! я правда логику до конца не понял ,но все работет ,пойду с GUI разбираться.

4

Re: AHK: В разных активных окнах запускать разные группы скриптов

Пожалуйста. А с логикой... дружить надо, да.

5

Re: AHK: В разных активных окнах запускать разные группы скриптов

я просто привык иметь дело с "четкими" сравнениями = ,неравно ,>,< ,а вот if !flag - это условие вводит в ступор ,погуглин ,непомогло.

6 (изменено: creature.ws, 2012-02-26 18:01:17)

Re: AHK: В разных активных окнах запускать разные группы скриптов

! тоже довольно чёткое

Logical-not (!): If the operand is blank or 0, the result of applying logical-not is 1, which means "true". Otherwise, the result is 0 (false). For example: !x or !(y and z). Note: The word NOT is synonymous with ! except that ! has a higher precedence. In v1.0.46+, consecutive unary operators such as !!Var are allowed because they are evaluated in right-to-left order.

© Справка

7

Re: AHK: В разных активных окнах запускать разные группы скриптов

mendisabal пишет:

я просто привык иметь дело с "четкими" сравнениями = ,неравно ,>,< ,а вот if !flag - это условие вводит в ступор ,погуглин ,непомогло.

видимо вы имели дело с Паскалем на ранней стадии развития
А для С/С++ и т.д. это нормально... бывает и похуже - var newColor = (temp > 100) ? "red" : "blue" это версия if/else правда для JS

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

8

Re: AHK: В разных активных окнах запускать разные группы скриптов

вы правы выше паскаля не "летал" ,като дико звучит ,спасибо вам .