Jump to content

Tray notifications redirector


Recommended Posts

Finally I am getting familiar with assembly. I got it working with 64bit and 32bit:

#include <windowsconstants.au3>
#include <WinAPI.au3>
#include <Memory.au3>


Global Const $WM_TRAYNOTIFY = $WM_USER + 1
Global Const $NIN_BALLOONSHOW = $WM_USER + 2
Global Const $NIN_BALLOONHIDE = $WM_USER + 3
Global Const $NIN_BALLOONUSERCLICK = $WM_USER + 5
Global Const $NIN_BALLOONTIMEOUT = $WM_USER + 4

Global Const $__gpTrayNotifySubclassProc = __TrayNotify_CreateSubclassProc()
Func __TrayNotify_CreateSubclassProc()
    ; ASM by ProgAndy
    Local $aCall = DllCall("kernel32.dll", "ptr", "GetProcAddress", "handle", _WinAPI_GetModuleHandle("user32.dll"), "str", "PostMessageW")
    Local $pPostMessageW = $aCall[0]
    $aCall = DllCall("kernel32.dll", "ptr", "GetProcAddress", "handle", _WinAPI_GetModuleHandle("Comctl32.dll"), "str", "DefSubclassProc")
    Local $pDefSubclassProc = $aCall[0]

    ; dwRefData (parameter #6) will be target window
    If @AutoItX64 Then; x64
    #cs
        use64
            push rbp
            mov  rbp, rsp
            sub rsp, 32 ; shadow space for api calls
            CMP RDX, 401h ; WM_TRAYNOTIFY
            jnz after_notify
        notify:
            mov  [rbp+10h], RCX ; save registers to own shadow space
            mov  [rbp+18h], RDX
            mov  [rbp+20h], R8
            mov  [rbp+28h], R9
            mov rcx, [rbp+38h] ; hWndRedirect
            mov rax, 22FF22FF22FF22FFh ; DUMMY 2
            call rax ; call PostMessageW
            mov R9, qword[ebp+28h] ; lparam ; restore registers for next call
            mov R8, qword[ebp+20h] ; wparam
            mov RDX, qword[ebp+18h] ; uMsg
            mov RCX, qword[ebp+10h] ; hWnd
        after_notify:
            mov rax, 33FF33FF33FF33FFh ; DUMMY 3
            call rax ; call DefSubclassProc
            add rsp, 32
            pop rbp
        ret ; x64 MS-FASTCALL
    #ce
        Local $b = Binary("0x554889e54883ec204881fa01040000753448894d10488955184c8945204c894d28488b4d3848b8")&Binary($pPostMessageW)&Binary("0xffd0674c8b4d28674c8b452067488b551867488b4d1048b8")&Binary($pDefSubclassProc)&Binary("0xffd04883c4205dc3")
    Else; x86
    #cs
        use32
            push ebp
            mov  ebp, esp
            CMP dword[ebp+12], 401h ; WM_TRAYNOTIFY
            jnz after_notify
        notify:    push dword[ebp+20] ; lparam
            push dword[ebp+16] ; wparam
            push dword[ebp+12] ; uMsg
            push dword[ebp+28] ; hWndRedirect
            mov eax, 22FF22FFh ; DUMMY 2
            call eax ; call PostMessageW
        after_notify: push dword[ebp+20] ; lparam
            push dword[ebp+16] ; wparam
            push dword[ebp+12] ; uMsg
            push dword[ebp+8] ; hWnd
            mov eax, 33FF33FFh ; DUMMY 3
            call eax ; call DefSubclassProc
            pop ebp
        ret 24 ; 6 parameters stdcall
    #ce
        Local $b = Binary("0x5589e5817d0c010400007513ff7514ff7510ff750cff751cb8")&Binary($pPostMessageW)&Binary("0xffd0ff7514ff7510ff750cff7508b8")&Binary($pDefSubclassProc)&Binary("0xffd05dc21800")
    EndIf
    Local $pMem = _MemVirtualAlloc(0, BinaryLen($b), $MEM_COMMIT, $PAGE_EXECUTE_READWRITE)
    Local $t = DllStructCreate("byte[" & BinaryLen($b) & "]", $pMem)
    DllStructSetData($t, 1, $b)
    Return $pMem
EndFunc

Func _TrayNotify_Redirect($hWndRedirect)
    DllCall("comctl32.dll", "bool", "SetWindowSubclass", "hwnd", __TrayNotify_AutoItWinGetHandle(), "ptr", $__gpTrayNotifySubclassProc, "uint_ptr", $hWndRedirect, "dword_ptr", $hWndRedirect)
EndFunc
Func _TrayNotify_RemoveRedirect($hWndRedirect)
    DllCall("comctl32.dll", "bool", "RemoveWindowSubclass", "hwnd", __TrayNotify_AutoItWinGetHandle(), "ptr", $__gpTrayNotifySubclassProc, "uint_ptr", $hWndRedirect)
EndFunc

Func __TrayNotify_AutoItWinGetHandle()
    Local Static $h
    If IsHWnd($h) Then Return $h
    Local $t = AutoItWinGetTitle()
    AutoItWinSetTitle("096c7d2e-4d24-4103-9503-66748fa96cc7#" & @AutoItPID)
    $h = WinGetHandle("096c7d2e-4d24-4103-9503-66748fa96cc7#" & @AutoItPID)
    AutoItWinSetTitle($t)
    Return $h
EndFunc

Opt('TrayAutoPause', 0)
Opt('WinTitleMatchMode', 3)
Opt('WinWaitDelay', 0)
Opt('TrayMenuMode', 3)

Global $iTip = 2
Global $hForm = GUICreate('')
DllOpen("comctrl32.dll")

_TrayNotify_Redirect($hForm)
GUIRegisterMsg($WM_TRAYNOTIFY, 'WM_TRAYNOTIFY')

Global $iShow = TrayCreateItem("Show New Tip")
TrayCreateItem("")
Global $iExit = TrayCreateItem("Exit")

TrayTip('Tip', 'This is a tray tip, click here.', 10, 1)

While 1
    Switch TrayGetMsg()
        Case $iShow
            TrayTip('Tip', 'This is a tray tip, click here. [ ' & $iTip & ' ]', 10, 1)
            $iTip += 1
        Case $iExit
            ExitLoop
    EndSwitch
WEnd
_TrayNotify_RemoveRedirect($hForm)

Func WM_TRAYNOTIFY($hWnd, $iMsg, $wParam, $lParam)
    Switch $hWnd
        Case $hForm
            Switch $lParam
                Case $NIN_BALLOONSHOW
                    ConsoleWrite('Balloon tip show.' & @CR)
                Case $NIN_BALLOONHIDE
                    ConsoleWrite('Balloon tip hide.' & @CR)
                Case $NIN_BALLOONUSERCLICK
                    ConsoleWrite('Balloon tip click.' & @CR)
                Case $NIN_BALLOONTIMEOUT
                    ConsoleWrite('Balloon tip close.' & @CR)
            EndSwitch
    EndSwitch
EndFunc   ;==>WM_TRAYNOTIFY

*GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes

Link to post
Share on other sites

Finally I am getting familiar with assembly. I got it working with 64bit and 32bit:

#include <windowsconstants.au3>
#include <WinAPI.au3>
#include <Memory.au3>


Global Const $WM_TRAYNOTIFY = $WM_USER + 1
Global Const $NIN_BALLOONSHOW = $WM_USER + 2
Global Const $NIN_BALLOONHIDE = $WM_USER + 3
Global Const $NIN_BALLOONUSERCLICK = $WM_USER + 5
Global Const $NIN_BALLOONTIMEOUT = $WM_USER + 4

Global Const $__gpTrayNotifySubclassProc = __TrayNotify_CreateSubclassProc()
Func __TrayNotify_CreateSubclassProc()
    ; ASM by ProgAndy
    Local $aCall = DllCall("kernel32.dll", "ptr", "GetProcAddress", "handle", _WinAPI_GetModuleHandle("user32.dll"), "str", "PostMessageW")
    Local $pPostMessageW = $aCall[0]
    $aCall = DllCall("kernel32.dll", "ptr", "GetProcAddress", "handle", _WinAPI_GetModuleHandle("Comctl32.dll"), "str", "DefSubclassProc")
    Local $pDefSubclassProc = $aCall[0]

    ; dwRefData (parameter #6) will be target window
    If @AutoItX64 Then; x64
    #cs
        use64
            push rbp
            mov  rbp, rsp
            sub rsp, 32 ; shadow space for api calls
            CMP RDX, 401h ; WM_TRAYNOTIFY
            jnz after_notify
        notify:
            mov  [rbp+10h], RCX ; save registers to own shadow space
            mov  [rbp+18h], RDX
            mov  [rbp+20h], R8
            mov  [rbp+28h], R9
            mov rcx, [rbp+38h] ; hWndRedirect
            mov rax, 22FF22FF22FF22FFh ; DUMMY 2
            call rax ; call PostMessageW
            mov R9, qword[ebp+28h] ; lparam ; restore registers for next call
            mov R8, qword[ebp+20h] ; wparam
            mov RDX, qword[ebp+18h] ; uMsg
            mov RCX, qword[ebp+10h] ; hWnd
        after_notify:
            mov rax, 33FF33FF33FF33FFh ; DUMMY 3
            call rax ; call DefSubclassProc
            add rsp, 32
            pop rbp
        ret ; x64 MS-FASTCALL
    #ce
        Local $b = Binary("0x554889e54883ec204881fa01040000753448894d10488955184c8945204c894d28488b4d3848b8")&Binary($pPostMessageW)&Binary("0xffd0674c8b4d28674c8b452067488b551867488b4d1048b8")&Binary($pDefSubclassProc)&Binary("0xffd04883c4205dc3")
    Else; x86
    #cs
        use32
            push ebp
            mov  ebp, esp
            CMP dword[ebp+12], 401h ; WM_TRAYNOTIFY
            jnz after_notify
        notify: push dword[ebp+20] ; lparam
            push dword[ebp+16] ; wparam
            push dword[ebp+12] ; uMsg
            push dword[ebp+28] ; hWndRedirect
            mov eax, 22FF22FFh ; DUMMY 2
            call eax ; call PostMessageW
        after_notify: push dword[ebp+20] ; lparam
            push dword[ebp+16] ; wparam
            push dword[ebp+12] ; uMsg
            push dword[ebp+8] ; hWnd
            mov eax, 33FF33FFh ; DUMMY 3
            call eax ; call DefSubclassProc
            pop ebp
        ret 24 ; 6 parameters stdcall
    #ce
        Local $b = Binary("0x5589e5817d0c010400007513ff7514ff7510ff750cff751cb8")&Binary($pPostMessageW)&Binary("0xffd0ff7514ff7510ff750cff7508b8")&Binary($pDefSubclassProc)&Binary("0xffd05dc21800")
    EndIf
    Local $pMem = _MemVirtualAlloc(0, BinaryLen($b), $MEM_COMMIT, $PAGE_EXECUTE_READWRITE)
    Local $t = DllStructCreate("byte[" & BinaryLen($b) & "]", $pMem)
    DllStructSetData($t, 1, $b)
    Return $pMem
EndFunc

Func _TrayNotify_Redirect($hWndRedirect)
    DllCall("comctl32.dll", "bool", "SetWindowSubclass", "hwnd", __TrayNotify_AutoItWinGetHandle(), "ptr", $__gpTrayNotifySubclassProc, "uint_ptr", $hWndRedirect, "dword_ptr", $hWndRedirect)
EndFunc
Func _TrayNotify_RemoveRedirect($hWndRedirect)
    DllCall("comctl32.dll", "bool", "RemoveWindowSubclass", "hwnd", __TrayNotify_AutoItWinGetHandle(), "ptr", $__gpTrayNotifySubclassProc, "uint_ptr", $hWndRedirect)
EndFunc

Func __TrayNotify_AutoItWinGetHandle()
    Local Static $h
    If IsHWnd($h) Then Return $h
    Local $t = AutoItWinGetTitle()
    AutoItWinSetTitle("096c7d2e-4d24-4103-9503-66748fa96cc7#" & @AutoItPID)
    $h = WinGetHandle("096c7d2e-4d24-4103-9503-66748fa96cc7#" & @AutoItPID)
    AutoItWinSetTitle($t)
    Return $h
EndFunc

Opt('TrayAutoPause', 0)
Opt('WinTitleMatchMode', 3)
Opt('WinWaitDelay', 0)
Opt('TrayMenuMode', 3)

Global $iTip = 2
Global $hForm = GUICreate('')
DllOpen("comctrl32.dll")

_TrayNotify_Redirect($hForm)
GUIRegisterMsg($WM_TRAYNOTIFY, 'WM_TRAYNOTIFY')

Global $iShow = TrayCreateItem("Show New Tip")
TrayCreateItem("")
Global $iExit = TrayCreateItem("Exit")

TrayTip('Tip', 'This is a tray tip, click here.', 10, 1)

While 1
    Switch TrayGetMsg()
        Case $iShow
            TrayTip('Tip', 'This is a tray tip, click here. [ ' & $iTip & ' ]', 10, 1)
            $iTip += 1
        Case $iExit
            ExitLoop
    EndSwitch
WEnd
_TrayNotify_RemoveRedirect($hForm)

Func WM_TRAYNOTIFY($hWnd, $iMsg, $wParam, $lParam)
    Switch $hWnd
        Case $hForm
            Switch $lParam
                Case $NIN_BALLOONSHOW
                    ConsoleWrite('Balloon tip show.' & @CR)
                Case $NIN_BALLOONHIDE
                    ConsoleWrite('Balloon tip hide.' & @CR)
                Case $NIN_BALLOONUSERCLICK
                    ConsoleWrite('Balloon tip click.' & @CR)
                Case $NIN_BALLOONTIMEOUT
                    ConsoleWrite('Balloon tip close.' & @CR)
            EndSwitch
    EndSwitch
EndFunc   ;==>WM_TRAYNOTIFY

Nice work ProgAndy! ;)

Br,

UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to post
Share on other sites
  • 5 years later...

Any solution for Windows 10 x64?

With both OP's solution and ProgAndy's Autoit dies on execution of the examples.

 

On 5/21/2012 at 6:30 PM, ProgAndy said:

Finally I am getting familiar with assembly. I got it working with 64bit and 32bit:

#include <windowsconstants.au3>
#include <WinAPI.au3>
#include <Memory.au3>


Global Const $WM_TRAYNOTIFY = $WM_USER + 1
Global Const $NIN_BALLOONSHOW = $WM_USER + 2
Global Const $NIN_BALLOONHIDE = $WM_USER + 3
Global Const $NIN_BALLOONUSERCLICK = $WM_USER + 5
Global Const $NIN_BALLOONTIMEOUT = $WM_USER + 4

Global Const $__gpTrayNotifySubclassProc = __TrayNotify_CreateSubclassProc()
Func __TrayNotify_CreateSubclassProc()
    ; ASM by ProgAndy
    Local $aCall = DllCall("kernel32.dll", "ptr", "GetProcAddress", "handle", _WinAPI_GetModuleHandle("user32.dll"), "str", "PostMessageW")
    Local $pPostMessageW = $aCall[0]
    $aCall = DllCall("kernel32.dll", "ptr", "GetProcAddress", "handle", _WinAPI_GetModuleHandle("Comctl32.dll"), "str", "DefSubclassProc")
    Local $pDefSubclassProc = $aCall[0]

    ; dwRefData (parameter #6) will be target window
    If @AutoItX64 Then; x64
    #cs
        use64
            push rbp
            mov  rbp, rsp
            sub rsp, 32 ; shadow space for api calls
            CMP RDX, 401h ; WM_TRAYNOTIFY
            jnz after_notify
        notify:
            mov  [rbp+10h], RCX ; save registers to own shadow space
            mov  [rbp+18h], RDX
            mov  [rbp+20h], R8
            mov  [rbp+28h], R9
            mov rcx, [rbp+38h] ; hWndRedirect
            mov rax, 22FF22FF22FF22FFh ; DUMMY 2
            call rax ; call PostMessageW
            mov R9, qword[ebp+28h] ; lparam ; restore registers for next call
            mov R8, qword[ebp+20h] ; wparam
            mov RDX, qword[ebp+18h] ; uMsg
            mov RCX, qword[ebp+10h] ; hWnd
        after_notify:
            mov rax, 33FF33FF33FF33FFh ; DUMMY 3
            call rax ; call DefSubclassProc
            add rsp, 32
            pop rbp
        ret ; x64 MS-FASTCALL
    #ce
        Local $b = Binary("0x554889e54883ec204881fa01040000753448894d10488955184c8945204c894d28488b4d3848b8")&Binary($pPostMessageW)&Binary("0xffd0674c8b4d28674c8b452067488b551867488b4d1048b8")&Binary($pDefSubclassProc)&Binary("0xffd04883c4205dc3")
    Else; x86
    #cs
        use32
            push ebp
            mov  ebp, esp
            CMP dword[ebp+12], 401h ; WM_TRAYNOTIFY
            jnz after_notify
        notify:    push dword[ebp+20] ; lparam
            push dword[ebp+16] ; wparam
            push dword[ebp+12] ; uMsg
            push dword[ebp+28] ; hWndRedirect
            mov eax, 22FF22FFh ; DUMMY 2
            call eax ; call PostMessageW
        after_notify: push dword[ebp+20] ; lparam
            push dword[ebp+16] ; wparam
            push dword[ebp+12] ; uMsg
            push dword[ebp+8] ; hWnd
            mov eax, 33FF33FFh ; DUMMY 3
            call eax ; call DefSubclassProc
            pop ebp
        ret 24 ; 6 parameters stdcall
    #ce
        Local $b = Binary("0x5589e5817d0c010400007513ff7514ff7510ff750cff751cb8")&Binary($pPostMessageW)&Binary("0xffd0ff7514ff7510ff750cff7508b8")&Binary($pDefSubclassProc)&Binary("0xffd05dc21800")
    EndIf
    Local $pMem = _MemVirtualAlloc(0, BinaryLen($b), $MEM_COMMIT, $PAGE_EXECUTE_READWRITE)
    Local $t = DllStructCreate("byte[" & BinaryLen($b) & "]", $pMem)
    DllStructSetData($t, 1, $b)
    Return $pMem
EndFunc

Func _TrayNotify_Redirect($hWndRedirect)
    DllCall("comctl32.dll", "bool", "SetWindowSubclass", "hwnd", __TrayNotify_AutoItWinGetHandle(), "ptr", $__gpTrayNotifySubclassProc, "uint_ptr", $hWndRedirect, "dword_ptr", $hWndRedirect)
EndFunc
Func _TrayNotify_RemoveRedirect($hWndRedirect)
    DllCall("comctl32.dll", "bool", "RemoveWindowSubclass", "hwnd", __TrayNotify_AutoItWinGetHandle(), "ptr", $__gpTrayNotifySubclassProc, "uint_ptr", $hWndRedirect)
EndFunc

Func __TrayNotify_AutoItWinGetHandle()
    Local Static $h
    If IsHWnd($h) Then Return $h
    Local $t = AutoItWinGetTitle()
    AutoItWinSetTitle("096c7d2e-4d24-4103-9503-66748fa96cc7#" & @AutoItPID)
    $h = WinGetHandle("096c7d2e-4d24-4103-9503-66748fa96cc7#" & @AutoItPID)
    AutoItWinSetTitle($t)
    Return $h
EndFunc

Opt('TrayAutoPause', 0)
Opt('WinTitleMatchMode', 3)
Opt('WinWaitDelay', 0)
Opt('TrayMenuMode', 3)

Global $iTip = 2
Global $hForm = GUICreate('')
DllOpen("comctrl32.dll")

_TrayNotify_Redirect($hForm)
GUIRegisterMsg($WM_TRAYNOTIFY, 'WM_TRAYNOTIFY')

Global $iShow = TrayCreateItem("Show New Tip")
TrayCreateItem("")
Global $iExit = TrayCreateItem("Exit")

TrayTip('Tip', 'This is a tray tip, click here.', 10, 1)

While 1
    Switch TrayGetMsg()
        Case $iShow
            TrayTip('Tip', 'This is a tray tip, click here. [ ' & $iTip & ' ]', 10, 1)
            $iTip += 1
        Case $iExit
            ExitLoop
    EndSwitch
WEnd
_TrayNotify_RemoveRedirect($hForm)

Func WM_TRAYNOTIFY($hWnd, $iMsg, $wParam, $lParam)
    Switch $hWnd
        Case $hForm
            Switch $lParam
                Case $NIN_BALLOONSHOW
                    ConsoleWrite('Balloon tip show.' & @CR)
                Case $NIN_BALLOONHIDE
                    ConsoleWrite('Balloon tip hide.' & @CR)
                Case $NIN_BALLOONUSERCLICK
                    ConsoleWrite('Balloon tip click.' & @CR)
                Case $NIN_BALLOONTIMEOUT
                    ConsoleWrite('Balloon tip close.' & @CR)
            EndSwitch
    EndSwitch
EndFunc   ;==>WM_TRAYNOTIFY

 

 

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
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By MONaH-Rasta
      Opt('TrayAutoPause', 0) $iTray1 = TrayCreateItem('Tray 1') TrayItemSetState(-1, 1) TrayCreateItem('') $iTrayMenu1 = TrayCreateMenu('Tray Menu 1') $iTray2 = TrayCreateItem('Tray 2', $iTrayMenu1, -1, 1) TrayItemSetState(-1, 1) $iTray3 = TrayCreateItem('Tray 3', $iTrayMenu1, -1, 1) $iTray4 = TrayCreateItem('Tray 4', $iTrayMenu1, -1, 1) TrayCreateItem('') $iTrayMenu2= TrayCreateMenu('Tray Menu 2') $iTray5 = TrayCreateItem('Tray 5', $iTrayMenu2, -1, 1) TrayItemSetState(-1, 1) $iTray6 = TrayCreateItem('Tray 6', $iTrayMenu2, -1, 1) $iTray7 = TrayCreateItem('Tray 7', $iTrayMenu2, -1, 1) TrayCreateItem('') $iTray8 = TrayCreateItem('Tray 8') $iTray9 = TrayCreateItem('Tray 9') $iTray10 = TrayCreateItem('Tray 10') TrayItemSetState(-1, 1) While True Sleep(1000*5) WEnd When I click on Tray 3 / Tray 4 / Tray 6 / Tray 7 nothing happens. Only Tray 2 and Tray 5 stay checked.
      I have tried setting 
      Opt("TrayMenuMode", 8) In this case radio menuitems act like normal menuitems only looks different.
      I'm using AutoIt v3.3.14.5.
      Tested on Windows 10 LTSC 2019 (1809) x64 version: 10.0.17763 build 17763.475 and Windows Server 2008 R2.
      Tried run script x64 and x86 same result.
      Is this kind a bug or something?
    • By argumentum
      So I'm coding in win 10, ..every thing looks nice but then I think, what about XP, ...ugly, but I make it pretty again, no problem. Lets check in Win 7 and here is my conundrum.
      Win 10, DRM is on, XP is off ( well, non-existant ), so far so good. I decide to make it the "switch" to enable or disable the checkbox in the context menu.
      Win 7 ... I try to apply the same logic and:
      DRM on:

       
      DRM off:

       
      now, "Windows 7 Basic": DRM is off


      Question: how should I determine if to hide the check-mark or not?, Is there a way to know that this theme is ? or better yet, how can I know that the theme is classic ?
      Thanks
      PS: I know that the code is not here but I think that my trend of thought would make it irrelevant anyway.
       
    • By ur
      I need to read the status of OneDrive icon running in the taskbar and update the status in a log file.
      2nd part I can complete
      But the first part, how to read the status of tray menu icon.

      I need the text above from the tray icon.
      I looked into , but not that helpful.
       
       
    • By WoodGrain
      Hi All,
      I'm using UseTraySetIcon("shell32.dll", xx) to set my tray icon to a specific icon while running, is there a way I can specify this icon when I compile my script into an exe so my exe icon is the same?
      Thanks!
    • By 9252Survive
      Hello Guys, 
      Is there a way to have Auto it Exe messages/line number when you hover over the tray icon just at it shows when you run Au3.?
      For an example, if I the script has paused due to WinWait or Sleep I could hover over the icon and it shows the line where it's at. Is there a way to achieve the same with the compiled exe? 
      Many thanks for the help! 
       
×
×
  • Create New...