enet98 发表于 2009-3-21 19:21:31

怎样将按钮变成灰色不可按?

代码如下(TEST.exe为自动安装程序,约120秒):

$kao = MsgBox(1, "确定安装", "确定安装软件?")
Select
      Case $kao = 1
                Run("TEST.exe")
                MsgBox(0 + 64 + 262144, "测试提示", "下面将要在后台运行自动安装,大约需要2分钟时间,请等待...", 120)
                MsgBox(0+64+262144,"测试提示","程序在后台120秒安装完毕后,此窗口代替前面的窗口!恭喜你!所有程序安装完毕,请按 确定 退出!")
      Case $kao = 2
EndSelect


================
问题:
能否将上面标红的这句中的“确定”改为灰色不可按?
否则,即使时间没到,只要按上了
MsgBox(0 + 64 + 262144, "测试提示", "下面将要在后台运行自动安装,大约需要2分钟时间,请等待...", 120)
的“确定”,就会马上跳出下一个窗口:
MsgBox(0+64+262144,"测试提示","程序在后台120秒安装完毕后,此窗口代替前面的窗口!恭喜你!所有程序安装完毕,请按 确定 退出!")

[ 本帖最后由 enet98 于 2009-3-21 23:35 编辑 ]

enet98 发表于 2009-3-21 19:43:40

使用ControlDisable不效!

论坛管理员 发表于 2009-3-21 19:52:02

用原始方法:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$kao = MsgBox(1, "确定安装", "确定安装软件?")
Select
      Case $kao = 1
                Run("Test.exe")
                $Form1 = GUICreate("程序", 450, 40, 300, 400, $WS_POPUP)
                $Label = GUICtrlCreateLabel("", 10, 15, 400, 17)
                GUISetState(@SW_SHOW)
                Dim $i = 1
                While 1
                        $i = $i + 1
                        GUICtrlSetData($Label, "下面将要在后台运行自动安装,大约需要2分钟时间,还剩 " & 120 - $i & " 秒")                        
                        Sleep(1000)
                        If $i = 120 Then ExitLoop
                WEnd
                MsgBox(0, "恭喜", "安装完成")
      Case $kao = 2
EndSelect

enet98 发表于 2009-3-21 20:08:45

原帖由 论坛管理员 于 2009-3-21 19:52 发表 http://www.autoitx.com/images/common/back.gif
用原始方法:
#include
#include

$kao = MsgBox(1, "确定安装", "确定安装软件?")
Select
      Case $kao = 1
                Run("Test.exe")
                $Form1 = GUICreate("程序", 450, 40 ...

辛苦了!!!!!!!
真的一动不动!就是不太美观!
我等还需要研究一下!

enet98 发表于 2009-3-21 20:22:28

不会做题,却会出题!

论坛管理员 发表于 2009-3-21 20:41:26

你的需要就是俺的需要!:face (29):

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$kao = MsgBox(1, "确定安装", "确定安装软件?")
Select
      Case $kao = 1
                Run("Test.exe")
                $Form1 = GUICreate("程序", 370, 40, 300, 350, $WS_POPUP)
                $Label = GUICtrlCreateLabel("", 10, 15, 350, 17)
                GUISetState(@SW_SHOW)
                Dim $i = 1
                While 1
                        $i = $i + 1
                        GUICtrlSetData($Label, "下面将要在后台运行自动安装,大约需要2分钟时间,还剩 " & 120 - $i & " 秒")                        
                        Sleep(1000)
                        If $i = 120 Then ExitLoop
                WEnd
      GUISetState(@SW_HIDE)
      Case $kao = 2
EndSelect
                MsgBox(0, "恭喜", "安装完成")

[ 本帖最后由 论坛管理员 于 2009-3-21 20:46 编辑 ]

enet98 发表于 2009-3-21 21:17:44

原帖由 论坛管理员 于 2009-3-21 20:41 发表 http://www.autoitx.com/images/common/back.gif
你的需要就是俺的需要!:face (29):

#include
#include

$kao = MsgBox(1, "确定安装", "确定安装软件?")
Select
      Case $kao = 1
                Run("Test.exe")
                $Form1 = G ...


报告老大:
两个问题:
1、如果带程序运行的话,即Run("Test.exe")起了作用,且需要一定的时间,则以下表单同样需要一定时间才能出现:
$Form1 = GUICreate("程序", 370, 40, 300, 350, $WS_POPUP)
                $Label = GUICtrlCreateLabel("", 10, 15, 350, 17)
                GUISetState(@SW_SHOW)
                Dim $i = 1
                While 1
                        $i = $i + 1
                        GUICtrlSetData($Label, "下面将要在后台运行自动安装,大约需要2分钟时间,还剩 " & 120 - $i & " 秒")                        
                        Sleep(1000)
                        If $i = 120 Then ExitLoop
2、上述表单居中的问题没有彻底解决,它与屏幕的分辨率设置有关!

[ 本帖最后由 enet98 于 2009-3-21 23:35 编辑 ]

enet98 发表于 2009-3-22 09:14:12

多谢论坛管理员 拔刀相助解决了居中问题!
09-3-21 23:54
$Form1 = GUICreate("程序", 370, 40, -1, -1, $WS_POPUP)
解决居中问题

enet98 发表于 2009-3-22 09:16:55

对不起!有点乱了!决定重新开贴发新问题!具体见下贴:
http://www.autoitx.com/forum.php?mod=viewthread&tid=5915&extra=page%3D1&frombbs=1

[ 本帖最后由 enet98 于 2009-3-22 09:54 编辑 ]
页: [1]
查看完整版本: 怎样将按钮变成灰色不可按?