[AHK-] AutoHotKey 入門教學 - 變數與剪貼簿

看板EzHotKey作者 (家瑀 致中和)時間16年前 (2008/07/21 23:38), 編輯推噓1(107)
留言8則, 3人參與, 最新討論串1/1
變數與剪貼簿: Using variables and the clipboard http://www.autohotkey.com/docs/Tutorial.htm#Variables 變數(Variable): 變數(Variable)就是可以放入一段文字的空箱子(其實是一小段記憶體空間)。 雖然變數可以儲存任意的字母、字串, 不過當一個變數只包含數字(當然可以包括小數點),並且拿來做運算或比較大小時, 它會被自動轉換成真的可以運算的數字,再做運算。 相反地,如果你將運算結果儲存回變數裡面的話, 它會被轉成字串然後才放進變數裡面。 除了函式裡面的變數屬於區域變數(local variable), 其他的變數都是 全域變數(global variable)。 也就是說,一段 script 裡面所有的指令都可以讀取或儲存全域變數。 關於 函式 http://www.autohotkey.com/docs/Functions.htm#Locals 變數出生的時候不需宣告,當你寫下變數的名字,它們就已經存在了唷~~ 如果沒有特別指定,變數出生時箱子裡面是空空的沒有任何東西。 下面的範例將示範如何指定一段文字給一個變數: MyVar1 = 123 MyVar2 = 我是可愛的文字 下面的例子則是一個變數的與其他字串(數字)比較: MyVar1 = 123 MyVar2 = 我是可愛的文字 if MyVar2 = 我是可愛的文字 {   MsgBox MyVar2 的內容是 "我是可愛的文字". } if MyVar1 >= 100 {   MsgBox MyVar1 的內容是 %MyVar1%, 這個值大於或等於 100. } 在最後一個 MsgBox 後面,或許有人已經注意到 MyVar1 兩邊多了 % 這個符號 (沒注意到的話請洽眼科醫生)。 %MyVar1%(兩邊有 % )出現的地方,表示會將 MyVar1 的資料提取出來, 再依照所下的指令進行顯示、運算等等。這裡則是直接將內容值顯示出來。 這種使用技巧還可以運用在將變數內容的拷貝或移轉給另一個變數,範例如下: MyVar1 = 123 MyVar2 = 我是可愛的文字 MyVarConcatenated = %MyVar1% %MyVar2% MsgBox %MyVarConcatenated% 在第三行右邊,會先將等號右邊的東西連結起來再丟進 MyVarConcatenated 變數中。 等號右邊分成三部份: 第一部份:%MyVar1% 也就是 123 第二部份:一個空格 也就是 空白鍵按一下。 ^_^||| 第三部份:%MyVar2% 也就是 我是可愛的文字。 所以最後 MyVarConcatenated 的內容就是“123 我是可愛的文字” ^這裡有一個空格唷~~ 這個範例會進行兩個變數的比較: ItemCount = 2 ItemLimit = 1 if (ItemCount > ItemLimit) { MsgBox ItemCount 裡面的數值是 %ItemCount%, 比 %ItemLimit% 還大. } 注意: if 後面有小括號,表示這個 if 指令包含一個表達式(expression)少了這對小括號,則稱為沒有表達式的 if-指令(non-expression if-statement)。 少了小括號,右邊的變數(這裡是 ItemLimit)旁邊一定要加上 % 符號, 而且只能有一個比較運算子( >, <, >=, <= 等等), 也就是說,不能使用 "AND"、"OR" 這類運算子。 像 ( Var1 >= 60 AND Var1 <= 100 ) 就一定要在左右加上小括號。 以這個例子來說,一定要寫成下面其中一種,才能正確執行: if ItemCount > %ItemLimit% if ( ItemCount > ItemLimit ) 數學運算: 要將計算結果丟進變數箱子裡面,必須使用 :=(冒號-等號)這個運算子。 範例如下: Price = 100 Discount = 0.2 NetPrice := Price * (1 - Discount/100) 表達式(expression)那邊有完整的數學運算子介紹。 http://www.autohotkey.com/docs/Variables.htm#Expressions 剪貼簿: Clipboard 是一個特別的變數,因為它裡面裝的是 Windows 剪貼簿目前儲存的文字。 而且你可以像使用一般變數一樣任意使用它唷~~ 下面這個範例會將剪貼簿的文字顯示出來: MsgBox %clipboard% 下面的例子會改變剪貼簿的內容(替換文字): clipboard = 這是第一行文字.`r`n這是第二行文字.`r`n `r 表示回到那一行的最前面。 `n 表示新增一行。 兩個寫在一起,就好像在記事本裡面按 [Enter] 換行一樣。 要將剪貼簿的文字增加(或者放到其他變數裡面),可以類似像這樣寫: clipboard = %clipboard% 好妙! 變長了耶~~ 更深入的討論可以參考: Clipboard、ClipboardAll、還有 OnClipboardChange (Clipboard, ClipboardAll, and OnClipboardChange) http://www.autohotkey.com/docs/misc/Clipboard.htm 變數和表達式(Variables and Expressions) http://www.autohotkey.com/docs/Variables.htm -- 主動是機會的誘餌 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.62.93.10 ※ 編輯: VElysian 來自: 61.62.73.116 (07/22 01:33)

07/22 08:24, , 1F
推教學
07/22 08:24, 1F

07/22 09:48, , 2F
我的頭好暈,我需要暈程式碼藥
07/22 09:48, 2F

07/22 10:09, , 3F
嗯,看來寫得不夠清楚,歡迎發問唷~~ ^__^
07/22 10:09, 3F

07/22 10:10, , 4F
這樣才方便調製新藥,可以對症下藥。 ^^
07/22 10:10, 4F

07/22 23:38, , 5F
哈哈,是因為我是程式碼門外漢嘛
07/22 23:38, 5F

07/22 23:39, , 6F
只玩過Dos時代的bat檔,而且是很簡單的指令
07/22 23:39, 6F

07/23 18:36, , 7F
軟體裡面的說明文件: Variables and Expressions
07/23 18:36, 7F

07/23 18:37, , 8F
那邊有說明,可以先看看。 改日有空會再補充。 ^_^
07/23 18:37, 8F
※ 編輯: VElysian 來自: 61.62.150.174 (07/27 21:28) ※ 編輯: VElysian 來自: 61.62.72.58 (08/01 19:18)
文章代碼(AID): #18XArq-X (EzHotKey)
文章代碼(AID): #18XArq-X (EzHotKey)