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

文章推薦指數: 80 %
投票人數:10人

變數與剪貼簿: Using variables and the clipboard http://www.autohotkey.com/docs/Tutorial.htm#Variables 變數(Variable): 變數(Variable) ... 批踢踢實業坊 › 看板EzHotKey 關於我們 聯絡資訊 返回看板 作者VElysian(家瑀致中和)看板EzHotKey標題[AHK-]AutoHotKey入門教學-變數與剪貼簿時間MonJul2123:38:242008 變數與剪貼簿: Usingvariablesandtheclipboard http://www.autohotkey.com/docs/Tutorial.htm#Variables 變數(Variable): 變數(Variable)就是可以放入一段文字的空箱子(其實是一小段記憶體空間)。

雖然變數可以儲存任意的字母、字串, 不過當一個變數只包含數字(當然可以包括小數點),並且拿來做運算或比較大小時, 它會被自動轉換成真的可以運算的數字,再做運算。

相反地,如果你將運算結果儲存回變數裡面的話, 它會被轉成字串然後才放進變數裡面。

除了函式裡面的變數屬於區域變數(localvariable), 其他的變數都是全域變數(globalvariable)。

也就是說,一段script裡面所有的指令都可以讀取或儲存全域變數。

關於函式http://www.autohotkey.com/docs/Functions.htm#Locals 變數出生的時候不需宣告,當你寫下變數的名字,它們就已經存在了唷~~ 如果沒有特別指定,變數出生時箱子裡面是空空的沒有任何東西。

下面的範例將示範如何指定一段文字給一個變數: MyVar1=123 MyVar2=我是可愛的文字 下面的例子則是一個變數的與其他字串(數字)比較: MyVar1=123 MyVar2=我是可愛的文字 ifMyVar2=我是可愛的文字 {   MsgBoxMyVar2的內容是"我是可愛的文字". } ifMyVar1>=100 {   MsgBoxMyVar1的內容是%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) { MsgBoxItemCount裡面的數值是%ItemCount%,比%ItemLimit%還大. } 注意: if後面有小括號,表示這個if指令包含一個表達式(expression)。

少了這對小括號,則稱為沒有表達式的if-指令(non-expressionif-statement)。

少了小括號,右邊的變數(這裡是ItemLimit)旁邊一定要加上%符號, 而且只能有一個比較運算子(>,=,<=等等), 也就是說,不能使用"AND"、"OR"這類運算子。

像 (Var1>=60ANDVar1<=100) 就一定要在左右加上小括號。

以這個例子來說,一定要寫成下面其中一種,才能正確執行: ifItemCount>%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,andOnClipboardChange) http://www.autohotkey.com/docs/misc/Clipboard.htm 變數和表達式(VariablesandExpressions) http://www.autohotkey.com/docs/Variables.htm -- 主動是機會的誘餌 -- ※發信站:批踢踢實業坊(ptt.cc) ◆From:61.62.93.10 ※編輯:VElysian來自:61.62.73.116(07/2201:33) 推CHCOOBOO:推教學07/2208:24 →kslman:我的頭好暈,我需要暈程式碼藥07/2209:48 →VElysian:嗯,看來寫得不夠清楚,歡迎發問唷~~^__^07/2210:09 →VElysian:這樣才方便調製新藥,可以對症下藥。

^^07/2210:10 →kslman:哈哈,是因為我是程式碼門外漢嘛07/2223:38 →kslman:只玩過Dos時代的bat檔,而且是很簡單的指令07/2223:39 →VElysian:軟體裡面的說明文件:VariablesandExpressions07/2318:36 →VElysian:那邊有說明,可以先看看。

改日有空會再補充。

^_^07/2318:37 ※編輯:VElysian來自:61.62.150.174(07/2721:28) ※編輯:VElysian來自:61.62.72.58(08/0119:18)



請為這篇文章評分?