Re: [AHK-] 有沒有辦法按下同個按鍵會依序出現不同 …
推
08/14 08:13,
08/14 08:13
→
08/14 08:13,
08/14 08:13
推
08/15 09:27,
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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
EzHotKey 近期熱門文章
PTT數位生活區 即時熱門文章