1 (изменено: cyberlife8, 2013-01-26 22:32:32)

Тема: AHK: Как объединить два скрипта ?

И снова здравствуйте !
У меня есть два похожих ahk скрипта, по-отдельности они работают замечательно, а вместе не хотят. Что мне сделать ?  Подскажите пожалуйста.

Loop
{
#IfWinActive ahk_class GFX_INT_DLG_WINDOW_GAME
WinWait, Player Still Active
ControlClick, Yes,
Sleep, 200
}  
return 
;----------------------------------------------------------------------
Loop
{
#IfWinActive ahk_class #32770
WinWait, Choose your rebuy amount
ControlClick, x195 y456
Sleep, 200
}  
return
  

2

Re: AHK: Как объединить два скрипта ?

Опишите, как всё это должно работать. И разделите код на два тега, раз это два разных скрипта.

3

Re: AHK: Как объединить два скрипта ?

#Persistent
SetTimer AntiIdle, 200
return

AntiIdle:
    WinExist("A")
    WinGetClass, winClass

    if (winClass == "GFX_INT_DLG_WINDOW_GAME") {
        WinWait, Player Still Active
        ControlClick Yes
    }

    else if (winClass == "#32770") {
        WinWait, Choose your rebuy amount
        ControlClick, x195 y456
    }
    return

#IfWinActive - директива и влияет лишь на горячие клавиши, расположенные в коде ниже.

4 (изменено: cyberlife8, 2013-01-26 23:52:52)

Re: AHK: Как объединить два скрипта ?

creature.ws Помогло, но только на половину(работает только одна часть, произвольно)

Опишите, как всё это должно работать. И разделите код на два тега, раз это два разных скрипта.


Скрипты должны закрывать надоедливые окошки типа OK, продолжить и т.д., тысячи их. Некоторые имеют название кнопки (проверял через WinSpy), а некоторые просто нарисованы и приходится кликать по координатам.

Loop
{
#IfWinActive ahk_class GFX_INT_DLG_WINDOW_GAME
WinWait, Player Still Active
ControlClick, Yes,
Sleep, 200
}  
return 
  
Loop
{
#IfWinActive ahk_class #32770
WinWait, Choose your rebuy amount
ControlClick, x195 y456
Sleep, 200
}  
return
 

5 (изменено: creature.ws, 2013-01-27 00:57:24)

Re: AHK: Как объединить два скрипта ?

#Persistent
SetTimer AntiIdle, 200
return

AntiIdle:
    WinExist("A")
    WinGetTitle winTitle

    if (winTitle == "Player Still Active")
        ControlClick Yes

    else if (winTitle == "Choose your rebuy amount")
        ControlClick, x195 y456
    return

6

Re: AHK: Как объединить два скрипта ?

Из примера ниже, можно понять что максимально возможное количество одновременно работающих цыклов = 2

Loop {
    Var1++
    MyLib_ToolTip("Цикл№1: " Var1 "`nЦикл№2: " Var1 "`nЦикл№3: " Var3,,1000,250)
    Sleep, 50
}
Loop {
    Var2++
    Sleep, 50
}
Loop {
    Var3++
    Sleep, 50
}
ESC::ExitApp


;==========================================================================
;==========================================================================
;============ [ К примеру не относиться..] ====
MyLib_ToolTip(TipText, TipDelay = 2000, TipX = 0, TipY = 0)
{
    If (!TipX) || (!TipY) {
        ToolTip, % TipText
        SetTimer, TtOff, % TipDelay
    }
    Else {
        ToolTip, % TipText, TipX, TipY
        SetTimer, TtOff, % TipDelay
    }
    Return
}
TtOff:
SetTimer, TtOff, Off
ToolTip
Return

А по отдельности Ваш скрипт работает нормально?

AutoHotKey Version: 1.1.09.02
Не спеши, а то успеешь..

7 (изменено: cyberlife8, 2013-01-27 03:02:47)

Re: AHK: Как объединить два скрипта ?

creature.ws Последний пример помог, спасибо !

И ещё один вопрос: Можно ли этот получившийся скрипт, объединить ещё с одним AHK?

Из примера ниже, можно понять что максимально возможное количество одновременно работающих цыклов = 2

Не совсем понял, в силу своей некомпетентности.

8

Re: AHK: Как объединить два скрипта ?

И ещё один вопрос: Можно ли этот получившийся скрипт, объединить ещё с одним AHK?

Да кто ж вам запретит…

9 (изменено: cyberlife8, 2013-01-27 03:20:05)

Re: AHK: Как объединить два скрипта ?

Да кто ж вам запретит…

Не это хотел спросить, просто я без вашей помощи не справлюсь..
Я уже попробовал дописать один в другой, у меня не получилось.

+ открыть спойлер
Loop
{
  MouseGetPos, X, Y, Win
  If(Win != PrevWin)
  {
    PrevWin := Win
    WinActivate, ahk_id %Win%
   }   
Sleep, 50
}
return

~p::Pause
return


#IfWinActive ahk_class GFX_INT_DLG_WINDOW_GAME
$u::
{
ControlClick, x111 y328
}
Sleep 10,
{
ControlClick, x310 y323
}
return

$m::
ControlClick, x14 y9
return

$j::
ControlClick, x184 y331
return

$k::
{
ControlClick, x325 y350
}
Sleep 10,
{
ControlClick, x262 y336
}
return

$i::
{
ControlClick, x371 y348
}
Sleep 10,
{
ControlClick, x266 y345
}
return

$o::
{
ControlClick, x406 y345
}
Sleep 10,
{
ControlClick, x266 y345
}
return

#IfWinActive ahk_class #32770
$u::
ControlClick, x255 y327
return

$j::
ControlClick, x365 y317
return

$k::
{
ControlClick, x457 y342
}
Sleep 10,
{
ControlClick, x457 y326
}
return

$i::
{
ControlClick, x418 y342
}
Sleep 10,
{
ControlClick, x450 y324
}
return

$o::
{
ControlClick, x377 y345
}
Sleep 10,
{
ControlClick, x473 y327
}
return

$m::
ControlClick, x337 y374
return

    

+

+ открыть спойлер
#Persistent
SetTimer AntiIdle, 200
return

AntiIdle:
    WinExist("A")
    WinGetTitle winTitle

    if (winTitle == "Player Still Active")
        ControlClick Yes

    else if (winTitle == "Are you sure?"){
        ControlClick Check, 
        ControlClick x58 y177
}
    else if (winTitle == "User Message")
        ControlClick, x165 y149

 else if (winTitle == "Member Message")
        ControlClick, x167 y149

 else if (winTitle == "Choose your buy-in amount")
        ControlClick, x88 y452

Наверно я что то упускаю ?

10

Re: AHK: Как объединить два скрипта ?

cyberlife8, теперь расскажите, как должен этот скрипт работать. С горячими клавишами вроде ясно, их можно прикрутить.
А это что должно делать?

Loop
{
  MouseGetPos, X, Y, Win
  If(Win != PrevWin)
  {
    PrevWin := Win
    WinActivate, ahk_id %Win%
   }   
Sleep, 50
}
return

~p::Pause
return

11 (изменено: cyberlife8, 2013-01-27 11:20:12)

Re: AHK: Как объединить два скрипта ?

cyberlife8, теперь расскажите, как должен этот скрипт работать. С горячими клавишами вроде ясно, их можно прикрутить.
А это что должно делать?

Это у меня "сделать окно под курсором - активным" и пауза.

12

Re: AHK: Как объединить два скрипта ?

Ещё вопрос. Зачем Вы используете в горячих клавишах фигурные скобки и префикс $ ?

13 (изменено: cyberlife8, 2013-01-27 22:23:51)

Re: AHK: Как объединить два скрипта ?

Ещё вопрос. Зачем Вы используете в горячих клавишах фигурные скобки и префикс $ ?

Фигурные скобки - для нескольких действий от одной клавиши.
$ - осталось от предыдущих редакций моего скрипта (в ней была, кажется, команда Send)

14

Re: AHK: Как объединить два скрипта ?

#Persistent

Loop
{
    Loop, 4
    {
    MouseGetPos, , , Win
    If(Win != PrevWin)
        {
        PrevWin := Win
        WinActivate, ahk_id %Win%
        }   
    Sleep, 50
    }
GoSub, AntiIdle
}


AntiIdle:
    WinExist("A")
    WinGetTitle winTitle

    if (winTitle == "Player Still Active")
        ControlClick Yes

    else if (winTitle == "Are you sure?"){
        ControlClick Check, 
        ControlClick x58 y177
}
    else if (winTitle == "User Message")
        ControlClick, x165 y149

 else if (winTitle == "Member Message")
        ControlClick, x167 y149

 else if (winTitle == "Choose your buy-in amount")
        ControlClick, x88 y452
Return

~p:: Pause

#IfWinActive ahk_class GFX_INT_DLG_WINDOW_GAME

u::
ControlClick, x111 y328
Sleep, 10
ControlClick, x310 y323
Return

m:: ControlClick, x14 y9

j:: ControlClick, x184 y331

k::
ControlClick, x325 y350
Sleep, 10
ControlClick, x262 y336
Return

i::
ControlClick, x371 y348
Sleep, 10
ControlClick, x266 y345
Return

o::
ControlClick, x406 y345
Sleep, 10
ControlClick, x266 y345
Return

#IfWinActive ahk_class #32770

u:: ControlClick, x255 y327

j:: ControlClick, x365 y317

k::
ControlClick, x457 y342
Sleep, 10
ControlClick, x457 y326
Return

i::
ControlClick, x418 y342
Sleep, 10
ControlClick, x450 y324
Return

o::
ControlClick, x377 y345
Sleep, 10
ControlClick, x473 y327
Return

m::ControlClick, x337 y374

15 (изменено: cyberlife8, 2013-01-28 20:34:30)

Re: AHK: Как объединить два скрипта ?

Большое спасибо всем ! Всё работает так, как  мне и не снилось.

16 (изменено: cyberlife8, 2013-01-29 04:44:04)

Re: AHK: Как объединить два скрипта ?

К сожалению вынужден опять просить о помощи, последняя редакция работает отлично, пока дело не доходит до окошка

 else if (winTitle == "Are you sure?"){
        ControlClick Check, 
        ControlClick x58 y177
}

Controlclick должен нажимать в нем клавишу Check, но это происходит лишь в том случае если курсор находится над этим окном, а так как в моём скрипте окна активируются курсором, оно как правило появляется неактивным (т.к.мышь не сидит месте)
я уже перепробовал различные варианты типа:

WinActivate, Are you sure?
WinSet, AlwaysOnTop, On, Are you sure?
ControlClick Check, 
ControlClick x58 y177
WinSet, AlwaysOnTop, Off, Are you sure?
Return

и так

SetControlDelay, -1
 ControlFocus, Check
 Sleep, -1
 ControlClick, Check

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

17

Re: AHK: Как объединить два скрипта ?

Кто-нибудь помогите переделать мой скрипт так, чтобы команды посылались в окно под курсором, а не "активному окну" как есть сейчас

+ открыть спойлер
#Persistent
SetKeyDelay,  300, 200

Loop
{
    Loop, 4
    {
    MouseGetPos, , , Win
    If(Win != PrevWin)
        {
        PrevWin := Win
        WinActivate, ahk_id %Win%
        }   
    Sleep, 20
    }
GoSub, AntiIdle
}

AntiIdle:
    WinExist("A")
    WinGetTitle winTitle

    if (winTitle == "Player Still Active")
        ControlClick Yes

      else if (winTitle == "Are you sure?")
        ControlClick Check, 

    else if (winTitle == "User Message")
        ControlClick, x165 y149

 else if (winTitle == "Member Message")
        ControlClick, x167 y149

 else if (winTitle == "Choose your buy-in amount")
        ControlClick, x88 y452

else if (winTitle == "Auto Post Blinds")
        ControlClick, Close
Return




$p::Pause
return


#IfWinActive ahk_class GFX_INT_DLG_WINDOW_GAME

u::
ControlClick, x111 y328
Sleep, 10
ControlClick, x310 y323
Sleep, 10
Return

m:: ControlClick, x14 y9

j:: ControlClick, x184 y331

k::
ControlClick, x325 y350
Sleep, 10
ControlClick, x262 y336
Return

i::
ControlClick, x371 y348
Sleep, 10
ControlClick, x266 y345
Return

o::
ControlClick, x406 y345
Sleep, 10
ControlClick, x266 y345
Return


#IfWinActive ahk_class #32770

$u::
ControlClick x208 y327
Sleep 10,
ControlClick x208 y327
Sleep 10,
ControlClick x211 y295
return

$j::
ControlClick, x339 y295

$k::
ControlClick, x422 y314
Sleep 10,
ControlClick, x419 y294
return

$i::
ControlClick, x387 y313
Sleep 10,
ControlClick, x419 y294
return

$o::
ControlClick, x353 y313
Sleep 10,
ControlClick, x419 y294
return

$m::
ControlClick, x304 y340


К сожалению у меня не хватает на это фантазии, хотя перепробовал массу вариантов.