2010-07-13 53 views
0

我在AutoHotKey中編寫了一個腳本,並且我偶然發現了一個僵局。現在我有一個包含複選框和下拉列表的工作GUI。該程序是用於遊戲的宏腳本 - 用戶檢查他想要在後臺運行哪些宏,提交他的選項,程序會不斷評估各種條件並根據是否滿足這些條件來執行命令。 宏中的每一個模板是這樣的:關於複雜環路的問題

Loop: 
PixelGetColor, color, 488, 778 ;gets pixel color of specific coordinate 
if thecolor = 0x000000 ; if the color is black 
{ 
    SendInput {Raw}f ;sends the f command to use item 
    } 

    else sleep 20 
goto, Loop 

所以宏觀循環,評估各像素爲2毫秒,如果if語句完成發送輸入。

問題出在這裏: 對於用戶可以檢查在後臺運行的每一個宏,都會指出不同的像素顏色,發送不同的輸入以及評估不同的座標。我怎樣才能創建一個包含用戶複選框選項的全方位循環? 例如,如果該複選框= 1(選擇),I可以是這樣的:

if(%Box1%=1) 
{ 
    Run above code 
} 

但是,如果用戶的檢查1和2,我必須評價其他座標,太。像這樣的:

if(%Box1%=1 & %Box2%=2) 
{ 
    Run above code 
      + 
    PixelGetColor, color2, 510, 778 
    if thecolor = 0x000000 
    { 
     Send 1 
     Sleep 20000 
    goto, start 
} 
    else, sleep 20 

我不希望有一個運行了一個又一個的多個不同的循環,因爲它會太慢了,我不希望有,如果做的所有可能的巨大分支「 '排列。 有誰知道該怎麼辦?

+0

這與JavaScript有什麼關係? – 2010-07-13 05:48:40

+0

意外標記爲這樣。我如何分離? – Parseltongue 2010-07-13 14:50:37

回答

0

,我不希望有「如果」 排列

的問題我的朋友是,這是唯一的解決辦法做了所有可能的巨大 分支。 你必須檢查每個複選框的狀態,所以沒有跳過那個部分。 如果我能看到你的代碼,我可以給你發一個修正,但是你不能在這裏粘貼完整的代碼。嘗試autohotkey.net/paste,我希望能夠幫助你。