tcbyjason 发表于 2009-6-19 18:30:56

INPUTBOX的疑问

本帖最后由 tcbyjason 于 2009-6-21 18:02 编辑

$ans = InputBox("核对", "输入")
If @error = 0 Then FileCopy("d:\photos\1.jpg", "D:\photos\"&$ans&".jpg")
If @error = 1 Then MsgBox(0, "", "你真的要退出?")


这个一按确定之后就结束了,我想按确定之后在重新运行程序该怎么搞?
菜鸟一个,望高手赐教。

都市浪子666 发表于 2009-6-19 21:13:24

是不是想到这种效果滴
$ans = InputBox("核对", "输入")
If @error = 0 Then
   FileCopy("d:\photos\1.jpg", "D:\photos\"&$ans&".jpg")
       Run(@ScriptFullPath,"")
       Exit
EndIf

If @error = 1 Then MsgBox(0, "", "你真的要退出?")

tcbyjason 发表于 2009-6-19 22:38:22

修改后运行结果一样,一按确定就结束程序了.
我是想一按确定之后执行
FileCopy("d:\photos\1.jpg", "D:\photos\"&$ans&".jpg")
再显示一个MsgBOX信息:图片修改完成.
然后又显示出INPUTBOX的输入窗口.

lynfr8 发表于 2009-6-19 22:57:02

用个while循环结构就可以啦While 1
$ans = InputBox("核对", "输入")
If @error = 0 Then
FileCopy("d:\photos\1.jpg", "D:\photos\"&$ans&".jpg")
MsgBox(0, "", "图片修改完成")
Else
$m =MsgBox(1, "", "你真的要退出?")
if $m = 1 Then
Exit
Else
        ContinueLoop
EndIf
EndIf
WEnd

tcbyjason 发表于 2009-6-20 00:14:04

非常感谢。问题继续哦!
如何能让程序只能输入数字,输入其它就提示错误?

lynfr8 发表于 2009-6-20 01:42:52

While 1
$ans = InputBox("核对", "输入")
If @error = 1 Then
        $m =MsgBox(1, "", "你真的要退出?")
if $m = 1 Then
Exit
Else
        ContinueLoop
EndIf
EndIf
If StringIsDigit ($ans) = 0Then
                MsgBox(0, "", "你输入非法字符")
        Else
                MsgBox(0, "", "图片修改完成")
        EndIf
        WEnd

tcbyjason 发表于 2009-6-20 13:08:16

本帖最后由 tcbyjason 于 2009-6-20 13:10 编辑

$g_szVersion = "My Script"
If WinExists($g_szVersion) Then
      MsgBox(262144, "警告", "程序已经运行", 3)
      Exit ; 此脚本已经运行了
EndIf
AutoItWinSetTitle($g_szVersion)
While 1
$ans = InputBox("核对", "输入","","",100,100)
If @error = 1 Then
      $m =MsgBox(1, "", "你真的要退出?")
if $m = 1 Then
Exit
Else
      ContinueLoop
EndIf
EndIf
If StringIsDigit ($ans) = 0Then                        
                MsgBox(0, "", "请输入正确")
      Else
                            FileCopy("d:\photos\1.jpg", "D:\photos\"&$ans&".jpg")
                MsgBox(0, "", " "&$ans&" 通过核对")
      EndIf
      WEnd


不知道要限制输入数字的位数要怎么弄,例如限制只能输入6位以上10位以下的数字。

顽固不化 发表于 2009-6-20 14:06:05

你就一次问个完吗。提问马拉松?

lynfr8 发表于 2009-6-20 16:06:19

楼主,服了你的提问方式!!While 1
$ans = InputBox("核对", "输入")
If @error = 1 Then
        $m =MsgBox(1, "", "你真的要退出?")
if $m = 1 Then
Exit
Else
        ContinueLoop
EndIf
EndIf
If StringIsDigit ($ans) = 0 Or StringLen($ans)<6Or StringLen($ans)>10 Then ;让程序限制只能输入6位以上10位以下数字,否则提示错误
                MsgBox(0, "", "你输入非法字符")
        Else
                MsgBox(0, "", "图片修改完成")
        EndIf
        WEnd

tcbyjason 发表于 2009-6-20 21:44:25

学习帖嘛,把大家的思路都慢慢引导好,这样才是好帖.
嘿嘿,好了,问题问完了,再不问完你们都发火了.
非常感谢,学习了很多东西.

藤真 发表于 2010-3-30 15:50:06

这个真的学习到了很多东西呀!!

lluxury 发表于 2010-3-30 16:59:53

这个真的学习到了很多东西呀!!

dajun 发表于 2010-5-3 10:26:39

记号,以后有用
页: [1]
查看完整版本: INPUTBOX的疑问