找回密码
 加入
搜索
查看: 3781|回复: 13

系统托盘响应单击鼠标左键的问题

 火.. [复制链接]
发表于 2009-3-26 00:20:12 | 显示全部楼层 |阅读模式
最近在写一个运用html页面做控制界面的程序,程序已经写好,想完善下,实现一个这样的功能:
当点击关闭窗口的按钮,程序隐藏,只可以看到系统托盘程序图标;
当左键点击该系统托盘图标,立即显示隐藏掉的窗口;
当点鼠标右键可以设置一些参数。
就像金山词霸那样。
这段代码实际运行的效果不满足我的需求。
#include <Constants.au3>
#NoTrayIcon
Opt("TrayMenuMode", 1)
Opt("trayOnEventMode", 1)

$Quit = TrayCreateItem("退出") 
TrayItemSetOnEvent($Quit, "TrayMsg")
TraySetOnEvent($TRAY_EVENT_PRIMARYDOWN, "TrayMsg")
TraySetState()

While 1
        Sleep(500)
WEnd

Func TrayMsg()
        Switch @TRAY_ID
                                Case $TRAY_EVENT_PRIMARYDOWN
                                                MsgBox(48, "提示", "单击了鼠标左键")
                Case $Quit
                        Exit
        EndSwitch
EndFunc 


如下这段代码,比较接近,但却又没有右键设置功能了
#include <GUIConstants.au3>
#include <IE.au3>
#include <Constants.au3>
Opt("TrayOnEventMode",1)
Opt("TrayAutoPause",0)
Opt("TrayMenuMode",1)        ; Default tray menu items (Script Paused/Exit) will not be shown.

Local $wintitle="whatever"
$LogViewer = GUICreate($wintitle,300,300)
$Button_1 = GuiCtrlCreateButton("true exit", 10, 10, 100, 40)

guisetstate()


TraySetOnEvent($TRAY_EVENT_PRIMARYDOWN, "showWin")

Local $infoitem = TrayCreateItem("showWin")
TrayItemSetOnEvent(-1,"showWin")
TrayCreateItem("")
Local $exititem = TrayCreateItem("Exit")
TrayItemSetOnEvent(-1,"ExitScript")
TrayCreateItem("")
Local $msg = TrayCreateItem("test")
TrayItemSetOnEvent(-1,"test")
TrayCreateItem("")

TraySetClick(0);0的时候单击即可显示主界面,但没法显示系统托盘的菜单了;1的时候菜单有效,$TRAY_EVENT_PRIMARYDOWN也响应
TraySetState()

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            exit
                case $GUI_EVENT_MINIMIZE 
                        WinSetState($wintitle,"",@SW_HIDE)
                case $Button_1
                        exit
    EndSwitch
Wend    

Func showWin()
                GUISetState(@SW_RESTORE, $LogViewer)
                WinSetState($wintitle,"",@SW_SHOW)
        EndFunc

func test()
        MsgBox(0,"","test")
EndFunc


Func ExitScript()
        Exit
EndFunc



[ 本帖最后由 ccxw1983 于 2009-3-26 13:00 编辑 ]
发表于 2009-3-26 02:05:50 | 显示全部楼层
TraySetClick(8)
 楼主| 发表于 2009-3-26 12:54:56 | 显示全部楼层
谢谢sxd,今天中午我回来试了,可以了。
#include <GUIConstants.au3>
#include <IE.au3>
#include <Constants.au3>
Opt("TrayOnEventMode",1)
Opt("TrayAutoPause",0)
Opt("TrayMenuMode",1)        ; Default tray menu items (Script Paused/Exit) will not be shown.

Local $wintitle="whatever"
$LogViewer = GUICreate($wintitle,300,300)
$Button_1 = GuiCtrlCreateButton("true exit", 10, 10, 100, 40)
guisetstate()

;
TraySetOnEvent($TRAY_EVENT_PRIMARYDOWN, "showWin")
;TraySetOnEvent($TRAY_EVENT_PRIMARYUP, "showWin")

Local $msg = TrayCreateItem("test")
TrayItemSetOnEvent(-1,"test")
TrayCreateItem("")
Local $exititem = TrayCreateItem("Exit")
TrayItemSetOnEvent(-1,"ExitScript")
TrayCreateItem("")

;0的时候单击即可显示主界面,但没法显示系统托盘的菜单
;1的时候菜单有效,$TRAY_EVENT_PRIMARYDOWN 也响应
;8/16的时候右键有效,左键响应 $TRAY_EVENT_PRIMARYUP/$TRAY_EVENT_PRIMARYDOWN 也没问题
TraySetClick(8)
TraySetState()

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            exit
                case $GUI_EVENT_MINIMIZE 
                        WinSetState($wintitle,"",@SW_HIDE)
                case $Button_1
                        exit
    EndSwitch
Wend    

Func showWin()
                GUISetState(@SW_RESTORE, $LogViewer)
                WinSetState($wintitle,"",@SW_SHOW)
        EndFunc

func test()
        MsgBox(0,"","test")
EndFunc


Func ExitScript()
        Exit
EndFunc

发表于 2009-11-23 13:42:41 | 显示全部楼层
谢谢我正需要你这代码的一部分阿!刚开始也想到了FUNC咋用原来上面那个改一下就好了
发表于 2009-11-23 16:15:32 | 显示全部楼层
正在找谢谢!
发表于 2010-1-8 10:33:16 | 显示全部楼层
遇到类似问题,谢谢了
发表于 2010-1-9 19:55:01 | 显示全部楼层
终于给我找到了,。。。
发表于 2010-7-15 17:30:47 | 显示全部楼层
了解了....看看
发表于 2010-7-17 09:12:37 | 显示全部楼层
收藏了
发表于 2010-7-23 08:03:34 | 显示全部楼层
收藏了收藏了
发表于 2011-10-15 18:00:27 | 显示全部楼层
好啊。正需要,谢谢!
发表于 2011-10-26 23:03:21 | 显示全部楼层
学习了,呵呵
发表于 2012-3-13 13:17:28 | 显示全部楼层
先收下啦啦
发表于 2013-1-22 11:27:08 | 显示全部楼层
非常好的一段代码。找得好苦啊!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-18 05:27 , Processed in 0.072947 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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