Sign in to follow this  
Followers 0
tomuky2k

Help with Tray Menu, Left Click & Double Click

3 posts in this topic

Hi,

Hope someone can help me figure out what I'm doing wrong, fairly new to AutoIt but have done a few little tools for myself and what to do something a bit more complicated.

I am trying to create a system tray icon that when right clicked brings up a menu with a few options for websites and exit(this I can do and get working). What I want to add is the ability to Double Click the tray icon and have it launch a preset website?

Here is my working code for the right click and menu:

#include <Constants.au3>

#TrayIcon
TraySetIcon("icon.ico")

#Disable Default Tray
Opt("TrayMenuMode", 3)

#Tray Tip
TraySetToolTip ("My Name")

Local $firstitem = TrayCreateItem("Google")
Local $seconditem = TrayCreateItem("MSN")
TrayCreateItem("")
Local $thirditem = TrayCreateItem("GMail")
TrayCreateItem("")
Local $exititem = TrayCreateItem("Exit")

TraySetState()
TraySetClick(16)

While 1
Local $msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
Case $msg = $firstitem
ShellExecute("http://www.google.co.uk")
Case $msg = $seconditem
ShellExecute("http://www.msn.co.uk")
Case $msg = $thirditem
ShellExecute("http://gmail.com")
Case $msg = $exititem
ExitLoop
EndSelect
WEnd
Exit

Now here is my attempt for adding the double click that doesn't work, :construction:

#include <Constants.au3>

#TrayIcon
TraySetIcon("icon.ico")

#Disable Default Tray
Opt("TrayMenuMode", 3)


#Tray Tip
TraySetToolTip ("My Name")

Local $firstitem = TrayCreateItem("Google")
Local $seconditem = TrayCreateItem("MSN")
TrayCreateItem("")
Local $thirditem = TrayCreateItem("GMail")
TrayCreateItem("")
Local $exititem = TrayCreateItem("Exit")

TraySetState()
TraySetClick(16)

; Functions
Func SpecialEvent()
Select
Case @TRAY_ID = $TRAY_EVENT_PRIMARYDOUBLE
ShellExecute("http://www.autoitscript.com")
EndSelect
EndFunc ;==>SpecialEvent

While 1
Local $msg = TrayGetMsg()

Select
Case $msg = 0
ContinueLoop
Case $msg = $firstitem
ShellExecute("http://www.google.co.uk")
Case $msg = $seconditem
ShellExecute("http://www.msn.co.uk")
Case $msg = $thirditem
ShellExecute("http://gmail.com")
Case $msg = $exititem
ExitLoop
EndSelect
WEnd
Exit

Obviously would love some help if someone knows how to accomplish this and/or wants a challenge. I had a look at the help as you can see, but just can't get it to do anything else.

Thank you for your help in advance.

Tom

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

This should do the work

#include <Constants.au3>

#TrayIcon
TraySetIcon("icon.ico")

#Disable Default Tray
Opt("TrayMenuMode", 3)


#Tray Tip
TraySetToolTip("My Name")

Local $firstitem = TrayCreateItem("Google")
Local $seconditem = TrayCreateItem("MSN")
TrayCreateItem("")
Local $thirditem = TrayCreateItem("GMail")
TrayCreateItem("")
Local $exititem = TrayCreateItem("Exit")

TraySetState()
TraySetClick(16)


While 1
Local $msg = TrayGetMsg()

Select
Case $msg = 0
ContinueLoop
Case $msg = $firstitem
ShellExecute("http://www.google.co.uk")
Case $msg = $seconditem
ShellExecute("http://www.msn.co.uk")
Case $msg = $thirditem
ShellExecute("http://gmail.com")
Case $msg = $TRAY_EVENT_PRIMARYDOUBLE
ShellExecute("http://www.autoitscript.com")
Case $msg = $exititem
ExitLoop
EndSelect
WEnd
Exit

For setting Event check Opt( "TrayOnEventMode") set to 1.

Otherwise use TrayGetMsg. Both cannot be used simultaneously

Regards :)

Edited by PhoenixXL

My code:

PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.

Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners.

MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. 

Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression.

Share this post


Link to post
Share on other sites

Thank you for a very quick and correct reply.

Very happy, Thank you once again.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0