Yuraj Posted April 9, 2009 Share Posted April 9, 2009 Hi there, Is there a way to catch click event on tooltip - balloon tip? I haven't found any windows message. I'm using this code: TrayTip("Title", "Text", 8, 1) ShellExecute("http://www.yuraj.ucoz.com")ProcessClose(@AutoItPID) Link to comment Share on other sites More sharing options...
PsaltyDS Posted April 9, 2009 Share Posted April 9, 2009 Hi there, Is there a way to catch click event on tooltip - balloon tip? I haven't found any windows message. I'm using this code:TrayTip("Title", "Text", 8, 1) Look at the example script in the help file for TraySetOnEvent(). Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law Link to comment Share on other sites More sharing options...
Authenticity Posted April 9, 2009 Share Posted April 9, 2009 #include <Constants.au3> #include <GuiToolTip.au3> #include <WinAPI.au3> #include <WindowsConstants.au3> Dim $iInterval = 8, $iInit Dim $iMSInterval = $iInterval * 1000 Dim $aWindows, $hShell_TrayWnd TrayTip('Title', 'Text', $iInterval) $aWindows = WinList('[CLASS:tooltips_class32]') $hShell_TrayWnd = WinGetHandle('[CLASS:Shell_TrayWnd]') For $i = 1 To $aWindows[0][0] If _WinAPI_GetParent($aWindows[$i][1]) = $hShell_TrayWnd And _ BitAND(_WinAPI_GetWindowLong($aWindows[$i][1], $GWL_STYLE), $WS_VISIBLE) Then ExitLoop EndIf Next $iInit = TimerInit() While TimerDiff($iInit) <= $iMSInterval If Not _GUIToolTip_ToolExists($aWindows[$i][1]) Then MsgBox(64, 'Notification', 'ToolTip was clicked') ExitLoop EndIf Sleep(50) WEnd Link to comment Share on other sites More sharing options...
Yuraj Posted April 9, 2009 Author Share Posted April 9, 2009 #include <Constants.au3> #include <GuiToolTip.au3> #include <WinAPI.au3> #include <WindowsConstants.au3> Dim $iInterval = 8, $iInit Dim $iMSInterval = $iInterval * 1000 Dim $aWindows, $hShell_TrayWnd TrayTip('Title', 'Text', $iInterval) $aWindows = WinList('[CLASS:tooltips_class32]') $hShell_TrayWnd = WinGetHandle('[CLASS:Shell_TrayWnd]') For $i = 1 To $aWindows[0][0] If _WinAPI_GetParent($aWindows[$i][1]) = $hShell_TrayWnd And _ BitAND(_WinAPI_GetWindowLong($aWindows[$i][1], $GWL_STYLE), $WS_VISIBLE) Then ExitLoop EndIf Next $iInit = TimerInit() While TimerDiff($iInit) <= $iMSInterval If Not _GUIToolTip_ToolExists($aWindows[$i][1]) Then MsgBox(64, 'Notification', 'ToolTip was clicked') ExitLoop EndIf Sleep(50) WEndYes, it's that what i'm looking for. But it's best way? ShellExecute("http://www.yuraj.ucoz.com")ProcessClose(@AutoItPID) Link to comment Share on other sites More sharing options...
Authenticity Posted April 9, 2009 Share Posted April 9, 2009 Nope, it can't be. The best is to create your own tray window so you'll get notification when the user is clicking it and not preforming this ridiculous code. ;] Link to comment Share on other sites More sharing options...
PsaltyDS Posted April 9, 2009 Share Posted April 9, 2009 Yes, it's that what i'm looking for. But it's best way?Authenticity's answer was better than mine. I was thinking of events from clicking on TrayMenu stuff, not the balloon tips. Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law Link to comment Share on other sites More sharing options...
oriolgs58 Posted December 29, 2009 Share Posted December 29, 2009 Is it possible to get autoit to click on these balloon tips? also, I have found some code to get the text of the tip using WinGetTitle but is it possible to get the title of the tip? I'm trying to write a balloon tip logger that lets me click on those with a keystroke. Any hints would be really appreciated since I have never sued mouse movement commands before. Link to comment Share on other sites More sharing options...
PsaltyDS Posted December 29, 2009 Share Posted December 29, 2009 A balloon tip is a window of a certain class with handle. Something like this should work: TrayTip("Title", "Text", 10) Sleep(1000) $hBalloon = WinGetHandle('[CLASS:tooltips_class32; INSTANCE:1]') If @error Then ConsoleWrite("Error: No balloon" & @LF) Else Sleep(1000) ControlClick($hBalloon, "", "") ConsoleWrite("Clicked on balloon: " & $hBalloon & @LF) Sleep(8000) EndIf Note that the regular use of title and text don't work to ID the balloon window, hence the CLASS used. Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law Link to comment Share on other sites More sharing options...
oriolgs58 Posted December 30, 2009 Share Posted December 30, 2009 Yes, it is really strange. Yesterday I was trying something like this. func clickit() msgbox(0,"list",$list) $pos=WinGetPos($list) if @error then speak("An error was encountered trying to get the position of the window.",3) return 0 EndIf MouseClick("left",$list[0],$list[1]) if @error then speak("An error was encountered when clicking.",3) return 0 EndIf speak("The balloon was clicked.",3) return 1 endfunc WinGetTitle seems to return the text, so I couldn't click on it. Is there any way I can get the actual title of the tip? Of course yesterday it wasn't clicking because it was trying to click on the text. Any ideas? I'm going to use this handle now, hopefully it's gonna work. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now