IT天空

 找回密码
 加入我们
搜索

[求助] INPUT的内容可以保存么?怎么做?

[复制链接]
tarcer 发表于 2017-6-5 12:08:59 | 显示全部楼层 |阅读模式

本帖最后由 tarcer 于 2017-6-6 17:10 编辑

写了个3389助手工具,代码如下:
  1. ;功能:方便通过3389远程联接服务器
  2. ;定义引用、环境等
  3. #RequireAdmin
  4. #NoTrayIcon
  5. #include <WindowsConstants.au3>
  6. #include <GUIConstantsEx.au3>
  7. #include <StaticConstants.au3>

  8. ;生成GUI
  9. $hGUI = GUICreate("3389远程助手 By Lab 302", 455, 225, -1, -1)
  10. $hLabel = GUICtrlCreateLabel("3389远程助手", 141, 19, 189, 55)
  11. GUICtrlSetFont(-1, 22)
  12. GUICtrlSetStyle(-1, $SS_CENTER + $SS_CENTERIMAGE)
  13. $hLabel2 = GUICtrlCreateLabel("请输入IP:", 28, 90, 113, 23)
  14. GUICtrlSetFont(-1, 18)
  15. GUICtrlSetStyle(-1, $SS_CENTER + $SS_CENTERIMAGE)
  16. $hInput =  GUICtrlCreateInput("", 149, 90, 270, 25)
  17. GUICtrlSetFont(-1, 18)
  18. $hButton = GUICtrlCreateButton("联接", 53, 145, 96, 51)
  19. GUICtrlSetFont(-1, 18)
  20. $hButton2 = GUICtrlCreateButton("退出", 312, 145, 96, 51)
  21. GUICtrlSetFont(-1, 18)
  22. ;
  23. ;定义主函数
  24. Func _main()
  25.         GUISetState()
  26.         Local $ip
  27.         While 1
  28.                 $hMsg = GUIGetMsg()
  29.                 Switch $hMsg
  30.                         Case $GUI_EVENT_CLOSE
  31.                                 Exit
  32.                         Case $hButton
  33.                                 $ip = GUICtrlRead($hInput)
  34.                                 Run(@ComSpec & " /c " & "mstsc /admin /v:" & $ip)
  35.                         Case $hButton2
  36.                                 Exit
  37.                         Case $hInput
  38.                                 $ip = GUICtrlRead($hInput)
  39.                                 Run("mstsc /admin /v:" & $ip)
  40.                 EndSwitch
  41.         WEnd
  42. EndFunc   ;==>_main
  43. ;执行主函数
  44. _main()
  45. Exit
复制代码


设想了下,能否加个“保存”按钮,把INPUT的值存起来,然后INPUT那就可以下拉选择?





最近访问 头像模式 列表模式
 楼主| tarcer 发表于 2017-6-5 12:12:15 | 显示全部楼层

活跃 1043| 技术 0| 互助 0| 钻石 0

这代码发出来怎么全乱了?
 楼主| tarcer 发表于 2017-6-5 12:13:52 | 显示全部楼层

活跃 1043| 技术 0| 互助 0| 钻石 0

只好又发截图了

121236gkwte1gatlb1ete3.jpg

121237e9k8mkz4hy52kpzb.jpg


Skyfree 发表于 2017-6-5 12:30:48 | 显示全部楼层

活跃 208389| 技术 1031| 互助 1331| 钻石 373

自己写GUI

点评

老大,在KODA里没找到可以下拉的那种输入框啊  详情 回复 发表于 2017-6-5 14:23
 楼主| tarcer 发表于 2017-6-5 14:23:11 | 显示全部楼层

活跃 1043| 技术 0| 互助 0| 钻石 0


老大,在KODA里没找到可以下拉的那种输入框啊,FROM BUILDER里也没有找到

点评

ComboBox  详情 回复 发表于 2017-6-5 18:03
Skyfree 发表于 2017-6-5 18:03:14 | 显示全部楼层

活跃 208389| 技术 1031| 互助 1331| 钻石 373

tarcer 发表于 2017-6-5 14:23
老大,在KODA里没找到可以下拉的那种输入框啊,FROM BUILDER里也没有找到

ComboBox
 楼主| tarcer 发表于 2017-6-6 16:10:59 | 显示全部楼层

活跃 1043| 技术 0| 互助 0| 钻石 0


  1. ;引用申明
  2. #RequireAdmin
  3. #NoTrayIcon
  4. #include <ButtonConstants.au3>
  5. #include <ComboConstants.au3>
  6. #include <GUIConstantsEx.au3>
  7. #include <StaticConstants.au3>
  8. #include <WindowsConstants.au3>
  9. ;
  10. ;GUI生成
  11. Global $dxk[4], $an[5] ;$dxk存储单选框控件,$an存储按钮控件
  12. #Region ### START Koda GUI section ### Form=
  13. $Form1 = GUICreate("Lab.302出品", 659, 256, 417, 205)
  14. GUISetFont(18, 400, 0, "微软雅黑")
  15. GUISetBkColor(0x99B4D1)
  16. $Label1 = GUICtrlCreateLabel("3 3 8 9 远 程 助 手", 216, 16, 236, 34)
  17. GUICtrlSetFont(-1, 22, 800, 0, "华文隶书")
  18. $Label2 = GUICtrlCreateLabel("请输入服务器IP:", 24, 64, 198, 39)
  19. GUICtrlSetFont(-1, 20, 400, 0, "微软雅黑")
  20. $srk = GUICtrlCreateCombo("", 232, 56, 313, 25, BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL))
  21. $an[1] = GUICtrlCreateButton("连接", 560, 48, 65, 49)
  22. GUICtrlSetFont(-1, 20, 400, 0, "微软雅黑")
  23. GUICtrlSetBkColor(-1, 0x008000)
  24. $an[2] = GUICtrlCreateButton("重新输入", 48, 167, 113, 57)
  25. GUICtrlSetBkColor(-1, 0xA6CAF0)
  26. $an[3] = GUICtrlCreateButton("保存设置", 273, 167, 113, 57)
  27. GUICtrlSetBkColor(-1, 0xA6CAF0)
  28. $an[4] = GUICtrlCreateButton("退出程序", 494, 167, 113, 57)
  29. GUICtrlSetBkColor(-1, 0xA6CAF0)
  30. $dxk[1] = GUICtrlCreateRadio("记忆", 232, 120, 57, 33)
  31. GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
  32. $dxk[2] = GUICtrlCreateRadio("删除", 304, 120, 57, 33)
  33. GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
  34. $dxk[3] = GUICtrlCreateRadio("清空", 371, 121, 57, 33)
  35. GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
  36. $bz = GUICtrlCreateIcon(@ScriptDir & "\ico\help.ico", -1, 624, 0, 33, 33)
  37. #EndRegion ### END Koda GUI section ###
  38. ;
  39. ;定义函数记录IP
  40. Func _addip(ByRef $ip)
  41.         Local $n, $t, $i, $jy = 1
  42.         $n = UBound($ip, 1)
  43.         For $i = 1 To $n - 1
  44.                 If $ip[$i] = GUICtrlRead($srk) Then $jy = 0
  45.         Next
  46.         If $jy = 1 Then
  47.                 ReDim $ip[$n + 1]
  48.                 $ip[$n] = GUICtrlRead($srk)
  49.         EndIf
  50.         For $i = 1 To UBound($ip, 1) - 1
  51.                 $t &= $ip[$i] & "|"
  52.         Next
  53.         GUICtrlSetData($srk, "")
  54.         Return $t
  55. EndFunc   ;==>_addip
  56. ;
  57. ;定义函数删除IP
  58. Func _delip(ByRef $ip)
  59.         Local $t, $n, $i
  60.         $t = GUICtrlRead($srk)
  61.         $n = UBound($ip, 1)
  62.         If $ip[$n - 1] = $t And $n > 1 Then
  63.                 ReDim $ip[$n - 1]
  64.         ElseIf UBound($ip, 1) = 1 Then
  65.                 $ip[0] = ""
  66.         else
  67.                 For $i = 1 To $n - 2
  68.                         If $ip[$i] = $t Then
  69.                                 Do
  70.                                         $ip[$i] = $ip[$i + 1]
  71.                                         If $i < $n - 2 Then $i += 1
  72.                                 Until $i = $n - 2
  73.                                 ReDim $ip[$n - 1]
  74.                         EndIf
  75.                 Next
  76.         EndIf
  77.         $t = ""
  78.         For $i = 1 To UBound($ip, 1) - 1
  79.                 $t &= $ip[$i] & "|"
  80.         Next
  81.         GUICtrlSetData($srk, "")
  82.         Return $t
  83. EndFunc   ;==>_delip
  84. ;
  85. ;定义函数判断保存设置应执行的内容
  86. Func _bcsz(ByRef $ip)
  87.         Select
  88.                 Case GUICtrlRead($dxk[1]) = 1
  89.                         GUICtrlSetData($srk, _addip($ip))
  90.                 Case GUICtrlRead($dxk[2]) = 1
  91.                         GUICtrlSetData($srk, _delip($ip))
  92.                 Case GUICtrlRead($dxk[3]) = 1
  93.                         ReDim $ip[1]
  94.                         $ip[0] =""
  95.                         GUICtrlSetData($srk, "")
  96.         EndSelect
  97. EndFunc   ;==>_bcsz
  98. ;
  99. ;定义主函数
  100. Func _main()
  101.         GUISetState(@SW_SHOW) ;激活GUI
  102.         Local $t, $ip = [""]
  103.         ;建立消息会话
  104.         While 1
  105.                 $nMsg = GUIGetMsg()
  106.                 Switch $nMsg
  107.                         Case $GUI_EVENT_CLOSE
  108.                                 Exit
  109.                         Case $srk
  110.                                
  111.                         Case $an[1]
  112.                                 $t = GUICtrlRead($srk)
  113.                                 Run("mstsc /admin /v:" & $t)
  114.                         Case $an[2]
  115.                                 GUICtrlSetData($srk, $ip[0])
  116.                                 GUICtrlSetData($srk, _addip($ip))
  117.                         Case $an[3]
  118.                                 _bcsz($ip)
  119.                         Case $an[4]
  120.                                 Exit
  121.                 EndSwitch
  122.         WEnd
  123. EndFunc   ;==>_main
  124. ;
  125. ;执行主函数
  126. _main()
  127. Exit
复制代码


谢谢S大,下拉框基本出来了,但是脚本关闭再开保存的数据就没了。怎么才可让数据在下次执行的时候还在啊
fujimidai 发表于 2017-6-6 19:13:05 | 显示全部楼层

活跃 1126| 技术 0| 互助 0| 钻石 10

tarcer 发表于 2017-6-6 16:10
谢谢S大,下拉框基本出来了,但是脚本关闭再开保存的数据就没了。怎么才可让数据在下次执行的时候还在 ...
  1. FileWrite();写入设置
  2. FileRead();读取设置
  3. GUICtrlSetData (  );设置
复制代码

点评

感谢fujimida[/backcolor]i! 写入文件没问题了,但是读取到数组好像不行啊 哪里错了啊?  详情 回复 发表于 2017-6-7 10:11
fujimidai 发表于 2017-6-6 19:14:40 | 显示全部楼层

活跃 1126| 技术 0| 互助 0| 钻石 10

或者用IniRead()     iniwrite()
 楼主| tarcer 发表于 2017-6-7 10:11:06 | 显示全部楼层

活跃 1043| 技术 0| 互助 0| 钻石 0


感谢fujimidai!
写入文件没问题了,但是读取到数组好像不行啊
  1. local $tmp
  2. $ip = FileRead(@WorkingDir & "\data.db")
  3. for $n = 0 to UBound($ip, 1) - 1
  4.     $tmp &= $ip[$n] & @CRLF
  5. NEXT
  6. MsgBox(0, "", $tmp, 5)
复制代码



哪里错了啊?

点评

fileread()是全部读取,而不是分行读取,不用for的$ip输出看看,, 如果要分行读取,并保存到数组的话。。 用这个吧  详情 回复 发表于 2017-6-8 11:21
fujimidai 发表于 2017-6-8 11:21:29 | 显示全部楼层

活跃 1126| 技术 0| 互助 0| 钻石 10

tarcer 发表于 2017-6-7 10:11
感谢fujimidai!
写入文件没问题了,但是读取到数组好像不行啊

fileread()是全部读取,而不是分行读取,不用for的$ip输出看看,,
如果要分行读取,并保存到数组的话。。

  1. FileReadToArray
  2. 读取指定文件到一个数组中.


  3. FileReadToArray ( "filehandle/filename" )


  4. 参数
  5. filehandle/filename 由先前调用 FileOpen() 返回的句柄. 也可以使用一个文件名作为参数.

  6. 返回值
  7. 成功: 返回一个 1 维数组, 每个元素包含文件的一个文本行并设置 @extended 为读取的行的数量
  8. 失败: 设置 @error 为非 0 值:
  9. @error: 1 = 打开指定文件时出错.
  10. 2 = 空文件.
复制代码

用这个吧
intelspirit 发表于 2017-6-12 13:36:27 | 显示全部楼层

活跃 1349| 技术 0| 互助 0| 钻石 0

我静静的学习了~
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

tarcer

1043

活跃

0

技术

0

互助
签到任务
最火的业界新闻
  • [图]魅蓝手机全新Logo曝光
  • 研究:人们大部分自拍是为了展示自己的美貌
  • 优派发布XG2530:25英寸240Hz电竞显示器
  • 情怀再袭!任天堂公布迷你SFC主机 内置21款
  • 全球最薄充电器KADO惊艳登场:仅三张银行卡
  • 支持三屏联动 罗技白领专用键鼠套MK850登场
  • 西部数据:不同意SK Hynix财团收购东芝芯片
  • 新款iMac评测:我买了块儿5K屏幕 还送了个
  • CHERRY推出"共享键盘"计划:最长1年 每
  • 黑客用“野蛮袋鼠”USB存储攻击工具感染CIA
炫酷的硬件Show
  • 银欣FT02,双路E5工作站
  • 迟到的定制机箱小钢炮清理灰尘
  • 华擎X99E-ITX + 银欣ML06 装机记
  • 最强双路泰坦硬管水冷 制作流程
  • 乔思伯UMX1 Plus,小巧的家用综合主机
  • 分体水冷第二弹-Inwin 805 infinity
  • 第一次DIY硬管水冷~~
  • 樱桃MX6.0 青轴 机械键盘 开箱
  • 挑战极限,10.2L小钢炮装机秀
  • 挑战S大水冷,本坛最强水冷装备首秀,及制
有趣的美图分享
  • 这英文翻译也是没谁了
  • 国际孤独等级表
  • 被抛弃,减肥后
  • 开得快的专车司机……
  • 请让男友学习,恋爱时女生经典台词翻译
  • 二哈的自诉
  • 无处安放的现实人生
  • 捷径
  • 老婆掉河里了
  • 面基的痛苦
关注官方微信
快速回复 返回顶部 返回列表