itljl 发表于 2011-1-28 20:50:24

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

本帖最后由 itljl 于 2011-2-3 19:11 编辑

大家可随便在自己写的GUI程序中,点一下右键(前提是这个控件有右键菜单),然后不做任何操作。
AU3程序整个就停了,包括AdlibRegister
有办法解决这个问题,不让他停吗?

republican 发表于 2011-1-28 22:13:30

给个代码看看。

netegg 发表于 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 http://www.autoitx.com/images/common/back.gif
我那个东东基本没有长时间的计算,可能体现不出来。
楼主说的这个问题我也经常遇到,不过都被我变相解决了。

_ddqs. 发表于 2011-1-28 23:14:34

跟MsgBox()一样,
加个"定时器"(一直打开)试下~~

3mile 发表于 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

itljl 发表于 2011-1-29 14:07:20

回复 4# 水木子


    请问变相解决是怎么解决的?谢谢。

马甲 发表于 2011-1-29 14:43:19

不雷,flashfxp也是一样的,传输过程中,你可以按下右键,他就不传了。

itljl 发表于 2011-1-29 15:27:04

回复 6# 3mile


    谢谢这样果然可以解决问题。
页: [1]
查看完整版本: 雷啊,程序暂停的问题。[已完成]