找回密码
 加入
搜索
查看: 2714|回复: 8

[GUI管理] 雷啊,程序暂停的问题。[已完成]

  [复制链接]
发表于 2011-1-28 20:50:24 | 显示全部楼层 |阅读模式
本帖最后由 itljl 于 2011-2-3 19:11 编辑

大家可随便在自己写的GUI程序中,点一下右键(前提是这个控件有右键菜单),然后不做任何操作。
AU3程序整个就停了,包括AdlibRegister
有办法解决这个问题,不让他停吗?
发表于 2011-1-28 22:13:30 | 显示全部楼层
给个代码看看。
发表于 2011-1-28 22:17:10 | 显示全部楼层
回复 1# itljl

不会吧,水木那个软件安装器不是有右键菜单的吗,没这个现象呀
发表于 2011-1-28 22:22:19 | 显示全部楼层
本帖最后由 水木子 于 2011-1-28 22:26 编辑
回复  itljl

不会吧,水木那个软件安装器不是有右键菜单的吗,没这个现象呀
netegg 发表于 2011-1-28 22:17

我那个东东基本没有长时间的计算,可能体现不出来。
楼主说的这个问题我也经常遇到,不过都被我变相解决了。
发表于 2011-1-28 23:14:34 | 显示全部楼层
跟MsgBox()一样,
加个"定时器"(一直打开)试下~~
发表于 2011-1-29 09:46:34 | 显示全部楼层
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
#include <Timers.au3>

;Global $Sec = 0
;Global $Min = 1
Local $sec = 0, $min = 1
$mainwindow = GUICreate("倒计时 ", 162, 82, 400, 300, BitOR($WS_POPUP, $WS_CLIPSIBLINGS))
$Label = GUICtrlCreateLabel("标签", 0, 0, 162, 82, $SS_BLACKFRAME, $GUI_WS_EX_PARENTDRAG) ;通过右键菜单退出-拖拽
;FileInstall("tu.jpg", @TempDir & "\") ;编译图片
;$Pic1 = GUICtrlCreatePic(@TempDir & "\tu.jpg", 0, 0, 162, 82)
$FontMin = GUICtrlCreateLabel(StringFormat('%02s', $min), 22, 2, 48, 39)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1, 0xc24343)
GUICtrlSetFont(-1, 34, 400, 0, "@黑体")
$FontD = GUICtrlCreateLabel(":", 68, 2, 48, 39)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1, 0xc24343)
GUICtrlSetFont(-1, 34, 400, 0, "@黑体")
$FontSec = GUICtrlCreateLabel(StringFormat('%02s', $sec) & ":", 90, 2, 48, 39)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetColor(-1, 0xc24343)
GUICtrlSetFont(-1, 34, 400, 0, "@黑体")
$contextmenu = GUICtrlCreateContextMenu(3)
$Start = GUICtrlCreateMenuItem("开始", $contextmenu)
$Abort = GUICtrlCreateMenuItem("关于", $contextmenu)
GUICtrlCreateMenuItem("", $contextmenu)
$infoitem = GUICtrlCreateMenuItem("退出", $contextmenu)
GUISetState(@SW_SHOW)

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case -3, $infoitem ; 退出
                        infoitem()
                Case $Start
                        _Timer_SetTimer($mainwindow, 1000, "_UpdateStatusBarClock")
                        $sec = 0
                        $min = 1
                        GUICtrlSetState($start,$GUI_DISABLE)                        
        EndSwitch
WEnd

Func _UpdateStatusBarClock($hWnd, $Msg, $iIDTimer, $dwTime)
        If $sec = 0 And $min = 0 Then
                _Timer_KillAllTimers($mainwindow)
                GUICtrlSetState($start,$GUI_ENABLE)
        Else
                If $sec <= 0 Then
                        $sec = 60 + $sec
                        $min -= 1
                EndIf
                $sec -= 1
                GUICtrlSetData($FontMin, StringFormat('%02s', $min))
                GUICtrlSetData($FontSec, StringFormat('%02s', $sec))
        EndIf
EndFunc   ;==>_UpdateStatusBarClock

Func infoitem()
        FileDelete(@TempDir & "\tu.jpg") ;删除图片
        Exit
EndFunc   ;==>infoitem

评分

参与人数 1金钱 +10 收起 理由
itljl + 10 谢谢。

查看全部评分

 楼主| 发表于 2011-1-29 14:07:20 | 显示全部楼层
回复 4# 水木子


    请问变相解决是怎么解决的?谢谢。
发表于 2011-1-29 14:43:19 | 显示全部楼层
不雷,flashfxp也是一样的,传输过程中,你可以按下右键,他就不传了。
 楼主| 发表于 2011-1-29 15:27:04 | 显示全部楼层
回复 6# 3mile


    谢谢这样果然可以解决问题。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 21:08 , Processed in 0.078872 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表