作者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/cn.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/cn.aspx?n=bbs/EzHotKey/M.1539459429.A.19E.html
1F:推 sworder12: 非常谢谢帮忙!!学到了! 10/15 13:58