作者LPH66 (J∪$т М㎝iκä)
看板EzHotKey
標題Re: [AHK-] 輸入框保留下次使用
時間Sun Oct 14 03:37:06 2018
※ 引述《sworder12 (sworder)》之銘言:
: 想請教各位,
: 我有一個需求就是小程式的輸入框,可以保留上次輸入的文字供下次使用,
: 程式碼跟說明如圖,麻煩各位前輩幫忙解惑,爬文幾天還是不會搞....
: 希望可以不用ini檔來解決,這樣有點複雜...
: [img]https://i.imgur.com/0ciulML.png[/img]
: --
:
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 121.229.166.210
: ※ 文章網址: https://webptt.com/m.aspx?n=bbs/EzHotKey/M.1539331940.A.604.html
: 推 littledrop: 若要保留上次內容還是得從某處讀取吧?(ini或txt) 10/13 00:44
: 我的需求是程式一開始開啟,變數是空白的,但希望有一個重啟功能,重啟後,把最後一次
: 輸入的文字填入變數;或者應該是說,把剛剛輸入的程式視窗再度開啟,這樣自然就保留上
: 次輸入的文字了,但不知道怎麼寫
: ※ 編輯: sworder12 (180.109.178.108), 10/13/2018 09:08:28
: ※ 編輯: sworder12 (180.109.178.108), 10/13/2018 09:09:10
: 推 LPH66: Gui, Add, ... 的最後一個參數就是預設值 10/14 02:36
回一下好了
你這段程式沒有 "送出" 部份的程式碼, 所以變數其實根本就沒記起來
(你可以試一下 Alt-F5 ~ Alt-F8 的功能)
所謂 "送出" 是指真正把輸入內容更新到以 v 選項指定的變數裡
這條指令是 Gui, Submit
你會希望它在你按 OK 或關掉視窗時執行, 所以需要加上這一段:
GuiClose:
ButtonOK:
Gui, Submit
Return
接著是重覆呼叫的問題
注意到我沒有在上面這一段加入 ExitApp, 因為我們不想要離開這支 script
一個理由當然是因為設定的快鍵就不見了
不過另一個理由則是你輸入的值會一直留著之後可以再叫出來
只是如果你只有這樣的話在第二次 Alt-F11 時會收到錯誤訊息表示 Edit1 被重覆指定了
這是因為 Gui, Submit 除了更新之外它其實沒有把視窗銷毁, 只有隱藏起來而已
而一個變數不能指定到兩個控制項, 所以就造成錯誤
但相對的, 既然只有視窗隱藏起來那其實就可以單純再次叫出來不用每次都重新建立
因此我們可以把建立部份的程式碼提出來到快鍵外面在載入時先建立好
Alt-F11 按下去時只要把它叫出來就好
這同時也達成了你所想要的 "保留輸入框" 的功能
(因為視窗沒有銷毁只有隱藏, 叫出來之後原來輸入的東西當然都還在)
為此我們需要給視窗一個名字, 這樣以後只要指定這個名字即可參照到這個視窗
改寫後的整支程式如下:
https://pastebin.com/AUPiPx6q
====
另外一個方法是每次都重建一個視窗
那為了避免上面的錯誤, 需要在送出時把視窗銷毁, 這可以使用 Gui, Destroy 達成
這樣為了保留輸入字串可以利用預設值的功能, 把變數在那裡展開
這樣子改寫的程式如下:
https://pastebin.com/vFmBwLz3
--
將很小又單純的
命令《Code》組合成
函數《Function》。函數累積成更大更方便的
元件《
Parts》,成為
程式《App》。接著進行動態結合,相互通訊,打造出
服務《Service》。
李奧納多知道,要得到結果,就必須持續進行非常單純的作業。
為了展現出匹敵巨大建築
的技術,現在非得將面前的碎片組合起來。
知道這條路多麼遙遠的人,叫做
極客《Geek》。
將這份尊貴具體呈現的人,叫做
駭客《Hacker》。 --記錄的地平線 Vol.9 p.299
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.192.32
※ 文章網址: https://webptt.com/m.aspx?n=bbs/EzHotKey/M.1539459429.A.19E.html
1F:推 sworder12: 非常謝謝幫忙!!學到了! 10/15 13:58