Re: [AHK-] 有沒有辦法按下同個按鍵會依序出現不同 …

看板EzHotKey作者 (家瑀 致中和)時間16年前 (2008/08/15 22:04), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)

08/14 08:13,
可以用!很方便!不過還有一個問題!
08/14 08:13

08/14 08:13,
如果把123改成ABC要怎麼改?那如果是不連續字母怎麼辦
08/14 08:13

08/15 09:27,
num:= 65 send {ASC %num%} 送ASCII code
08/15 09:27
連續的字母可以用陣列唷~~ 只會增加 4 行變成 10 行而已。 ^_^ 程式碼如下: string = Hello ;設定文字為 Hello StringSplit , array , string ;將string的內容轉換成 array 陣列的元素 StringLen , strLen , string ;擷取string的長度並放進 strLen 變數中 #W:: ;按下 Win + W 執行至 return 前的指令 arrayCount = 1 ;建立變數 arrayCount 並令他的值為 1 return ;Win + W 指令結束 #Q:: ;按下 Win + Q 執行至 return 前的指令 Send ,% array%arrayCount% ;送出指定陣列位置的值 arrayCount := ( mod(arrayCount, strLen) ) + 1 ; := 意思是將右邊運算的結果放進左邊的變數中 ;例如 mod(10,4)是取 10 ÷4 的餘數也就是 2 return ;Win + Q 指令結束 陣列教學: 陣列與變數不同的地方在於, 1. 陣列一定是一連串的文字組成,變數則不一定。 2. 陣列可以擷取中間的某個字,變數不行。 例如兩個內容都是 Hello 的變數和陣列,他們會長得像這個樣子: ┌───┬───────────┐ │ 型態 │ 內容 │ ├───┼───────────┤ │ │ ╭─────╮ │ │ 變數 │ │Hello│ │ │ │ ╰─────╯ │ ├───┼───────────┤ │ │╭─┬─┬─┬─┬─╮│ │ ││1│2│3│4│5││ │ 陣列 │├─┼─┼─┼─┼─┤│ │ ││H│e│l│l│o││ │ │╰─┴─┴─┴─┴─╯│ └───┴───────────┘ 上圖中我們發現陣列的 Hello 被分成 5 個字母, 這 5 個字母稱為陣列的元素。 字母上面的數字是用來提取字母用的。 這些數字可以想像成是一條街上的地址, 如果要找特定的住戶(字母),只要找到地址就可以了。 而變數只能一次提取出 Hello 這個單字,不能像陣列可以分別提出來。 ═══════════════════════════════════════ 在 AutoHotKey 中,可以用 StringSplit 指令來製造陣列。 StringSplit , 陣列 , 變數 , 分割條件(文字) , 首尾忽略文字 這個指令會將 變數 的內容分開成一個個陣列的元素,然後存放進指定的 陣列 中。 例如: string = Hello StringSplit , array , string 會把 string 的內容 Hello 的字母分別拆開來一個個放進 array 這個陣列中。 更進一步資料可以參考 http://www.autohotkey.com/docs/commands/StringSplit.htm ═══════════════════════════════════════ 陣列使用教學: 如果我們製造了一個陣列如下: ┌────┬───────────┐ │陣列名稱│ 陣列內容 │ ├────┼───────────┤ │ │╭─┬─┬─┬─┬─╮│ │ ││1│2│3│4│5││ │ Array │├─┼─┼─┼─┼─┤│ │ ││H│e│l│l│o││ │ │╰─┴─┴─┴─┴─╯│ └────┴───────────┘ 那麼要怎麼使用它呢? 其實很簡單,只要在陣列名稱後面加上數字的位置就行了: Array1 就是 H Array2 就是 e Array3 就是 l Array4 就是 l Array5 就是 o 如果要顯示第五個元素的內容,這樣子寫就好了: MsgBox , %Array5% 但是假設我的陣列元素有 100 個,想要全部印出來,要怎麼寫? 如果用 Loop , num = 1 Loop , 100 { MsgBox , % Array %num% % num := num + 1 } 有太多「 % 」,Loop 會認不出來耶~~ AutoHotKey 提供一種特別的方法讓你在指令中內嵌陣列唷~~ 就是把 陣列的「 % 」去掉,然後在指令的逗號後面加一個「 % 」就行了。 範例如下: num = 1 Loop , 100 { MsgBox , % Array%num% num := num + 1 } 更進一步的資料可以參考: http://www.autohotkey.com/docs/misc/Arrays.htm ═══════════════════════════════════════ 教學完畢,希望對你有幫助。 ^_^ -- 戰略高手 遊戲, 數位, 程設 [jzs/lostname DigitalWare 軟體 Σ軟體 應用 技巧 [lostname] EzHotKey 軟體 ◎簡化複雜工作的快速鍵軟體 VElysian EzHotKey 主要討論一種可以把複雜的滑鼠鍵盤動作變成簡單的快速鍵的軟體。 例如: 重複的剪下貼上,或是將滑鼠調整音量的動作簡化成只按 +/- 鍵。 包括: AutoHotKey、AutoIt、EZScript、VBScript、Windows 批次檔。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.64.175.233

08/16 07:01, , 1F
先推等等慢慢看 感謝解答
08/16 07:01, 1F
文章代碼(AID): #18fOq2Od (EzHotKey)
文章代碼(AID): #18fOq2Od (EzHotKey)