找回密码
 加入
搜索
查看: 3955|回复: 11

traytip怎么添加进去?

  [复制链接]
发表于 2010-1-10 22:43:23 | 显示全部楼层 |阅读模式
本帖最后由 qixinwb 于 2010-1-30 10:54 编辑

自己写的gameupdate.exe的源码:
$g_szVersion = "gameupdate"
If WinExists($g_szVersion) Then Exit
AutoItWinSetTitle($g_szVersion)
$var = IniReadSectionNames("\\Server\e\gameupdate\gameupdate.ini")
If @error Then
        MsgBox(4096, "", "Error occurred, probably no INI file.")
Else
        For $i = 1 To $var[0]
                        ShellExecutewait($var[$i])
                        Opt("TrayMenuMode",1)        ; Default tray menu items (Script Paused/Exit) will not be shown.
                        TrayTip("请勿关闭游戏下载窗口!","智能后台更新已启动,他将使您下次进入游戏更快速!",5000,1)
                        Sleep(5000)
                        ProcessWaitClose("load.exe")
                        FileWrite("\\Server\xunlei\更新日志\"&@ComputerName&".txt", @ComputerName& "  "&@MON& "-" & @MDAY & "  " &@HOUR& ":" &@MIN& "    " & $var[$i]& @CRLF)
                Next
                TrayTip("更新完成!","下次进入游戏将会快很多!",5000,1)
                Sleep(5000)
                TrayTip("祝您上机愉快!","欢迎下次光临齐心网吧!",5000,1)
                Sleep(5000)
        EndIf
        Exit
我想把下面的代码加入进去,怎么办?

Opt("TrayMenuMode",1)        ; Default tray menu items (Script Paused/Exit) will not be shown.
$aboutitem                = TrayCreateItem("关于")
TrayCreateItem("")
$exititem                = TrayCreateItem("退出")

TraySetState()
TraySetClick(16)

While 1
        $msg = TrayGetMsg()
        Select
                Case $msg = 0
                        ContinueLoop
                Case $msg = $aboutitem
                        Msgbox(64,"关于:","齐心网吧自创!")
                Case $msg = $exititem
                        Msgbox(64,"温馨提示!","智能更新系统在您空闲的时候自动下载游戏,将使您下次进入游戏更快速!"&@CRlf& @lf&"更新完毕他会自动关闭,不会影响您上机!")
        EndSelect
WEnd

我试过好几种LOOP方法都不行,求大虾们帮忙看看!还有,用了Opt("TrayMenuMode",1)        后图标要想显示源程序的图标怎么办?

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-1-13 22:35:31 | 显示全部楼层
本帖最后由 jycel 于 2010-1-13 22:40 编辑

你下面那句要不得!参考下下面代码!今晚没时间临时上一下,要不帮你改了!
$tp[1]    = TrayCreateItem("显示菜单");, $tp[1])
TrayItemSetOnEvent($tp[1], "TrayMsg") ;注册第一个菜单项的事件(被点下)
$tp[2]    = TrayCreateItem("隐藏菜单");, $tp[1])
TrayItemSetOnEvent($tp[2], "TrayMsg") ;注册第一个菜单项的事件(被点下)
$tp[3]     = TrayCreateItem("关于程序")
TrayItemSetOnEvent($tp[3], "TrayMsg") ;注册第一个菜单项的事件(被点下)
TrayCreateItem("")
$tp[4]       = TrayCreateItem("退出程序")
TrayItemSetOnEvent($tp[4], "TrayMsg") ;注册第一个菜单项的事件(被点下)
TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE,"_show")
TraySetState()
TraySetToolTip("桌面菜单"&@CRLF&"当前操作系统:"&@OSVersion&" "&@OSServicePack&@CRLF&"个人专用版 BY-Jycel")
;在显示窗口之前添加以上代码,内容自己改
GUISetState(@SW_SHOW)

Func TrayMsg() ;消息执行函数
Switch @TRAY_ID  ;选择产生消息的 TrayItem 或其它特殊事件(鼠标左键双击事件)
        Case $tp[1]
                _show()
        Case $tp[2]
                GUISetState(@SW_HIDE,$Form1)
    Case $tp[3]
                MsgBox(48,"关于程序","桌面专用菜单"&@CRLF&@CRLF&"BY-Jycel QQ:472891322",5)
        Case $tp[4]
                $queding=MsgBox(32+4,"关闭提示","是否关闭程序?")
         if $queding="7" Then
                        _minx()
                Elseif $queding="6" Then
                        _ext()
                EndIf
EndSwitch
EndFunc   ;==>TrayMsg
 楼主| 发表于 2010-1-16 11:13:25 | 显示全部楼层
十分感谢楼上的jycel解答,我照葫芦画瓢到是会了,可是不明白是为什么非要照那样的格式。
我上面的两段代码单独运行都是正确的,放到一起就不行了,就是shellexcute()的时候不能看tray上面的菜单,必须等shellexcute()运行完才能看。我是想在shellexcute()调用的时候无聊可以看看那trayItem并且可以由他关闭程序。
我的目的是想把那两段整合起来。。。。
发表于 2010-1-16 11:50:50 | 显示全部楼层
回复 3# qixinwb


    没细看,整合了
Opt("TrayMenuMode", 1) ; Default tray menu items (Script Paused/Exit) will not be shown.
$aboutitem = TrayCreateItem("安装软件")
TrayCreateItem("")
$exititem = TrayCreateItem("退出")

TraySetState()
TraySetClick(16)

While 1
        $msg = TrayGetMsg()
        Select
                Case $msg = 0
                        ContinueLoop
                Case $msg = $aboutitem
                        MsgBox(64, "安装软件", "现在开始安装软件")
                        test()
                Case $msg = $exititem
                        ;MsgBox(64, "温馨提示!", "智能更新系统在您空闲的时候自动下载游戏,将使您下次进入游戏更快速!" & @CRLF & @LF & "更新完毕他会自动关闭,不会影响您上机!")
                        Exit
        EndSelect
WEnd


Func test()
        $g_szVersion = "gameupdate"
        If WinExists($g_szVersion) Then Exit
        AutoItWinSetTitle($g_szVersion)
        $var = IniReadSectionNames("Server\e\gameupdate\gameupdate.ini")
        If @error Then
                MsgBox(4096, "", "Error occurred, probably no INI file.")
        Else
                For $i = 1 To $var[0]
                        ShellExecuteWait($var[$i])
                        Opt("TrayMenuMode", 1) ; Default tray menu items (Script Paused/Exit) will not be shown.
                        TrayTip("请勿关闭游戏下载窗口!", "智能后台更新已启动,他将使您下次进入游戏更快速!", 5000, 1)
                        Sleep(5000)
                        ProcessWaitClose("load.exe")
                        FileWrite("\\Server\xunlei\更新日志" & @ComputerName & ".txt", @ComputerName & "  " & @MON & "-" & @MDAY & "  " & @HOUR & ":" & @MIN & "    " & $var[$i] & @CRLF)
                Next
                TrayTip("更新完成!", "下次进入游戏将会快很多!", 5000, 1)
                Sleep(5000)
                TrayTip("祝您上机愉快!", "欢迎下次光临齐心网吧!", 5000, 1)
                Sleep(5000)
        EndIf
EndFunc   ;==>test

评分

参与人数 1金钱 +10 贡献 +5 收起 理由
qixinwb + 10 + 5 多谢提供思路

查看全部评分

发表于 2010-1-16 13:48:35 | 显示全部楼层
opt
 楼主| 发表于 2010-1-17 12:12:24 | 显示全部楼层
万分荣幸能得到超级版主的认真解答。
原来是要把他单独作为一个Func,哎,难怪我总是失败呢。。。。
 楼主| 发表于 2010-1-17 12:14:17 | 显示全部楼层
我是直接把那一段加在了 Case $msg = $aboutitem下面。结果循环不出来,看不了菜单
发表于 2010-1-17 15:39:51 | 显示全部楼层
回复 7# qixinwb


    不用客气,我只是复制&粘贴了下……  记得改下帖子分类~~
 楼主| 发表于 2010-1-23 10:39:25 | 显示全部楼层
可是问题又来了。。。。
程序是没问题了,却被windows限制了并发连接数!!!改了tcp还是不行,一次只能和10台机子保持连接
为什么网管软件可以同时连接那么多机子呢?
发表于 2010-1-23 11:00:01 | 显示全部楼层
10个连接的限制是说共享连接吧,TCP的并发连接你就设置成1000也没用的
非SERVER系统,尤其是XP是有这共享连接限制的,而且目前没有好的解决办法,有个补丁可以把XP变成SERVER,但系统改的乱七八糟的。。

共享的机器换成2003吧,这样很方便解决问题

不知道AU3用TCP连接进行下载,会不会有这限制,有待测试。。
 楼主| 发表于 2010-1-30 10:16:49 | 显示全部楼层
完了,我是新来的菜鸟。不知道怎么结贴!!!
发表于 2012-3-12 11:05:06 | 显示全部楼层
好帖,又学到点有用的东西
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-19 11:33 , Processed in 0.074247 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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