找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 273|回复: 3

[求助] 把這兩個腳本合在一起 有大神能幫幫我嗎?

[复制链接]
  • 打卡等级:无名新人

3

主题

0

回帖

6

积分

学前班

鲜花
0
猫粮
13
发表于 2024-1-21 19:37:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
intX = - 1
Do until  intX > - 1
    For 30
        FindColorEx 0, 0, 639, 375, "FE00FF", 1, 0.9, intX, intY
        If intX <= - 1 Then

            Delay 20
            KeyPress "F6", 1
            Delay 100
        End If
        Delay 1
    Next

Loop
KeyPress "PageDown", 1        //這是第一個腳本

intA = - 1
Do until  intA > - 1
    For 30
        FindColorEx 0, 0, 639, 375, "29002D", 1, 0.9, intA, intB
        If intA <= - 1 Then

            Delay 20
            KeyPress "F6", 1
            Delay 100
        End If
        Delay 1
    Next

Loop
KeyPress "PageDown", 1        //這是第二個腳本

分成兩個單獨執行不會出錯 可以順利找到 FE00FF 或 29002D 停下來

F6是隨機捲軸
PageDown是中止熱鍵



可是我把這兩個腳本合在一起 然後 找到 FE00FF 或 290022D 都不會停下來 有大神能幫幫我嗎?


intX = - 1
intA = - 1

Do until  intX > - 1 or intA = - 1
    For 30
        FindColorEx 0, 0, 639, 375, "FE00FF", 1, 0.9, intX, intY
        FindColorEx 0, 0, 639, 375, "29002D", 1, 0.9, intA, intB
        If intX <= - 1  or  intA <= - 1Then

            Delay 20
            KeyPress "F6", 1
            Delay 100
        End If
        Delay 1
    Next

Loop
KeyPress "PageDown", 1         //這是我自己合在一起有問題的腳本

楼主热帖
  • 打卡等级:拜师学艺

0

主题

1

回帖

1

积分

按键电脑班学员

鲜花
0
猫粮
63
发表于 2024-1-24 14:24:31 | 显示全部楼层
Do
    FindColorEx 0, 0, 639, 375, "FE00FF", 1, 0.9, intX, intY
    FindColorEx 0, 0, 639, 375, "29002D", 1, 0.9, intA, intB
    If intX > - 1  or  intA > - 1Then
        Delay 20
        KeyPress "F6", 1
        Delay 100
        Exit Do
    End If
    Delay 100
Loop
KeyPress "PageDown", 1


这样子行不, 为啥要加个for30次呀,你这个循环 ,首先判断intA = - 1,他条件成立了呀,为啥还会停不下来,应该是直接退出循环的呀
  • 打卡等级:无名新人

0

主题

1

回帖

1

积分

学前班

鲜花
0
猫粮
5
发表于 2024-4-6 02:26:00 | 显示全部楼层
不確定你的問題是否已經解決。

依照你敘述的狀況來說,流程並沒有符合 If 判定進行指定的流程中,同樣對於你所設定的 Do Until 大概率也是一樣的狀況,因此我認為關鍵應該在判定的部分,也就是 or 。

我不知道按鍵精靈程式語言能否接受 or ,但是為了避免這個部分,也許可以嘗試用 ElseIf 去做 intA 的判定。

Do
    FindColorEx 0, 0, 639, 375, "FE00FF", 1, 0.9, intX, intY
    FindColorEx 0, 0, 639, 375, "29002D", 1, 0.9, intA, intB
    If intX > - 1  Then
        Delay 20
        KeyPress "F6", 1
        Delay 100
        Exit Do
    ElseIf intA > -1 Then
        Delay 20
        KeyPress "F6", 1
        Delay 100
        Exit Do
    End If
    Delay 100
Loop
KeyPress "PageDown", 1

另外,我自己個人的一點經驗就是 Do Until 雖然很方便,但是有時卻莫名的不是很靈光,似乎在判定邏輯上有一點瑕疵,所以我會去用 If 加上 Exit Do 作為替代。當然這有可能是我自己的邏輯問題,僅供參考。
  • 打卡等级:拜师学艺

4

主题

24

回帖

32

积分

按键电脑班学员

鲜花
3
猫粮
315
发表于 2024-4-6 19:58:15 | 显示全部楼层
Do until  intX > - 1 or intA = - 1,问题出在 intA = -1
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|紫猫编程学园

GMT+8, 2024-5-4 00:16

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表