Jump to content

Notify - New version 28 Oct 21


Recommended Posts

It would be nice if the script were able to detect the primary screen, and show the notifications on the primary screen.

or on secondary, it should be possible to choose.

 

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * for other useful stuff click the following button:

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST APIErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) *

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskSchedulerIE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related:How to get reference to PDF object embeded in IE *

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

I also encourage you to check awesome @trancexx code:  * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuffOnHungApp handlerAvoid "AutoIt Error" message box in unknown errors  * HTML editor

winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2021-10-18

Link to post
Share on other sites
  • Replies 277
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

[NEW VERSION] - 28 Oct 21 Changed: Retracting multiple notifications in close succession could lead to a fatal "array subscript out of bounds" error - added a check to prevent this. New UDF

[NEW VERSION] - 26 Apr 19 Added: _Notify_RetractCheck allows the user to determine the retraction method (title clicked/message clicked/timeout) and content (title/message) of the last retracted

[NEW VERSION] - 4 Jun 17 Added: _Notify_Locate now takes an optional second parameter which, when used in a multiple monitor setup, will force the notifications to appear on a specified monitor r

Posted Images

  • Moderators

legend,

Does the _Notify_Locate function (which lets you choose the right or left hand side of your monitor setup for the notifications) not suffice?

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites
  • 2 months later...

hi Melba,
hope you are well :)

made a small bug report:

1. using _Notify_Locate(3) - left hand side of the monitor
The notify box leaves a print when exits

print.png

2. When using right click on desktop for selecting the screen resolution
And changing "make text and other items smaller or bigger"

Using largest or medium the notify boxes don't act or look well

I made it work and look better using this function
maybe you would like to test this or add something you have to make it play nicely
on note: using this with multiple Notify boxes displaying, it wont look well (spacing problem..).

Global $a1 = _GetDPI(), $iDPI = $a1[1], $iDPIRat = $a1[2]

  Local $iNotify_Width_max = 300 * $iDPIRat
  Local $iNotify_Width_min = 150 * $iDPIRat
  Local $iNotify_Height = 40* $iDPIRat
  
Func _GetDPI()
  Local $a1[3]
  Local $iDPI, $iDPIRat, $Logpixelsy = 90, $hWnd = 0
  Local $hDC = DllCall("user32.dll", "long", "GetDC", "long", $hWnd)
  Local $aRet = DllCall("gdi32.dll", "long", "GetDeviceCaps", "long", $hDC[0], "long", $Logpixelsy)
  $hDC = DllCall("user32.dll", "long", "ReleaseDC", "long", $hWnd, "long", $hDC)
  $iDPI = $aRet[0]
  Select
    Case $iDPI = 0
      $iDPI = 96
      $iDPIRat = 94
    Case $iDPI < 84
      $iDPIRat = $iDPI / 105
    Case $iDPI < 121
      $iDPIRat = $iDPI / 96
    Case $iDPI < 145
      $iDPIRat = $iDPI / 95
    Case Else
      $iDPIRat = $iDPI / 94
  EndSelect
  $a1[0] = 2
  $a1[1] = $iDPI
  $a1[2] = $iDPIRat
  Return $a1
EndFunc   ;==>_GetDPI

Thanks

Link to post
Share on other sites
  • Moderators

Deye,

You will hardly be surprised to learn that I cannot reproduce that "shadow" effect with _Notify_Locate(3) in my own example script. And as I have to ask you each time you report something, can you please post the exact code you used when this problem occurred so that I can see if there is anything I can spot which might give me a clue as to why it is happening for you.

And while I understand that changing the DPI settings mess with the GUI, I have no intention of making the UDF DPI aware. As you point out, it is not a trivial task to modify the entire UDF and as you are the first to report this difficulty I can only imagine that most people leave the setting at the standard 100% where the UDF works well.

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites

Melba,

thanks for taking an interest with the problem but I don't think its coming from your code
This happens only when running on Hebrew UI whether locate is right or left
Tested on vm on English UI there is no problem ..

As to dpi , its easy to reproduce and partly get it fixed using the steps I described
Its all OK :)

thanks again

Deye

Link to post
Share on other sites
  • 6 months later...

Hi Melba,

aka request:

id like to make a box functional as a progress bar too
or a thin one matching to the length of the second line of text, and just under it.
  

aka reports:

as to

$iNotify_Width_max

i think it would be better to have something to override this value
so one can simply use (for the box\margins sizes)
"     short     " 
" shortness "
and so boxes stay equal in size too

_Notify_Show(64, "","    short    ", 0, 1, -500, -1000)

the reason I'm suggesting this..on some tests on large dpi the box wouldn't appear
i thought having this as a value may have caused the problem ..
but I have successfully managed the problem after all.

Thanks

Deye
 

Link to post
Share on other sites
  • Moderators

Deye,

Request: I am not interested in adding a progress bar, sorry. These are notifications of a specific event rather than marking an on-going process - my Toast UDF will let you do that.

Report: Overriding the max width should not be a problem, but I have no idea what you mean by:

Quote

"     short     " 
" shortness "

as a way of setting the width. Can you explain in more detail?

And I have no intention of dealing with different DPI settings - that is a user problem as far as I am concerned.

M23

 

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites

Melba,

Cool, will surly check out your Toast UDF didn't know that it had that option

38 minutes ago, Melba23 said:

as a way of setting the width

yes, to avoid the need for maximum or minimum sizes and so padding the text with spaces can parameter the final box's Width.

Thanks again

Deye

Link to post
Share on other sites
  • 6 months later...

Hi Melba

I wanted to start notify in two or more single processes:

 

so when a newer pid (same process name) starts it will show above the previous notify window like in Notify_Example_3.au3

The idea is to automatically preset coords of each window by pid - the first\newer pid - (a new window) - above the previous  (also to possibly avoid racing condition when two or more processes start in the same time ..)

I don't really need the windows going downwards when where other previous windows exits (though it will still be cool) ,  as I'll be using one window coords per process

BTW, with each new process started:  which variable controls the coords that creates a new window but above the seemingly previous one ?   (in the UDF)

Any other advice to help simplify this idea is most welcome


Thanks In Advance

Deye

Link to post
Share on other sites
  • Moderators

Deye,

Why not use the _Notify_Locate function so that the processes use different locations for their notifications? Or create a helper script using the UDF which is informed when each of the other scripts requires it to produce a notification? I think that either of those solutions would be simpler that trying to adjust the UDF to deal with double inputs.

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites
  • 4 months later...

Hey Melba,

I'm trying to adjust notify with this function to show up on the same screen as "My Window" is at .
Of course this isn't the correct way of getting this done, As it only works as long as monitor 1 is configured to be on the left but not the other way
when the extended monitor is on the left then the left coord is a - negative < 0 number, and when on the right the number grows from the right's main screen ..
If you don't mind helping mode this correctly ..(if you are not using dual monitors ..I Can test)

TIA

$iExtreme = _ScreenFromHWnd(WinGetHandle("My Title", "")) ; Furthest left/right edge found so far

....

Func _ScreenFromHWnd($hWnd)
    Local $hDisplay = _WinAPI_MonitorFromWindow($hWnd)
    Local $tRect = _WinAPI_GetMonitorInfo($hDisplay)
    Return DllStructGetData($tRect[1], 'Left').
EndFunc

 

Link to post
Share on other sites
  • Moderators

Deye,

The UDF already checks for the screen limits and should pick the edges automatically. Are you using _Notify_Locate at the top of your script to allow the UDF to determine where they are?

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites

My _Notify_Locate settings are set to default .. bottom\Right


You mean to say that _Notify_Locate options are bound to left and right top and bottom as if 2 screens are one (screen) ?
If not, can you give an example ..Because I really didn't find any options for choosing a dedicated screen 

with my example if my desktop is on monitor 2 and monitor 1 is on the left to it, when launched from monitor 1 the notification shows to the right\bottom of monitor 1 not 2 (by default) .. (in the middle of both on monitor 1)

Link to post
Share on other sites
  • Moderators

Deye,

Can you please run this and post the result:

#include <WinAPISys.au3>
#include <WinAPIGdi.au3>

_Notify_Locate_Test(0)
_Notify_Locate_Test(1)
_Notify_Locate_Test(2)
_Notify_Locate_Test(3)

Func _Notify_Locate_Test($iLocation = 0)

    ; Look for monitors
    Local $aEDM = _WinAPI_EnumDisplayMonitors()
    If @error Then Return SetError(3, 0, 0)
    Local $aCoords[$aEDM[0][0] + 1][4], $hDisplay, $tRect, $iIndex
    ; Get get coords for each monitor
    For $i = 1 To $aEDM[0][0]
        $hDisplay = $aEDM[$i][0] ; 1 for first handle, 2 for second
        $tRect = _WinAPI_GetMonitorInfo($hDisplay)
        If @error Then Return SetError(3, 0, 0)
        $aCoords[$i][0] = DllStructGetData($tRect[1], 'Left')
        $aCoords[$i][1] = DllStructGetData($tRect[1], 'Top')
        $aCoords[$i][2] = DllStructGetData($tRect[1], 'Right')
        $aCoords[$i][3] = DllStructGetData($tRect[1], 'Bottom')
    Next

    ; Determine which monitor will display notifications
    Local $iExtreme = (($iLocation > 1) ? (1000) : (0)) ; Set initial value to be adjusted as necessary

    For $i = 1 To UBound($aCoords) - 1
        ; Depending on location, look for leftest/rightest monitor edge
        Switch $iLocation
            Case 0, 1
                If $aCoords[$i][2] > $iExtreme Then
                    $iExtreme = $aCoords[$i][2] ; Furthest left/right edge found so far
                    $iIndex = $i ; Index of associated monitor
                EndIf
            Case 2, 3
                If $aCoords[$i][0] < $iExtreme Then
                    $iExtreme = $aCoords[$i][0]
                    $iIndex = $i
                EndIf
        EndSwitch
    Next

    ; Adjust data array depending on required location
    Switch $iLocation
        Case 0
            ConsoleWrite("0 ; From bottom right:" & @CRLF & _
                    $aCoords[$iIndex][3] - 10 & " ; bottom Y" & @CRLF & _
                    $aCoords[$iIndex][2] - 10 & " ; right X" & @CRLF)
        Case 1
            ConsoleWrite("1 ; From top right" & @CRLF & _
                    $aCoords[$iIndex][1] + 10 & " ; top Y" & @CRLF & _
                    $aCoords[$iIndex][2] - 10 & " ; right X" & @CRLF)
        Case 2
            ConsoleWrite("2 ; From top left" & @CRLF & _
                    $aCoords[$iIndex][1] + 10 & " ; top Y" & @CRLF & _
                    $aCoords[$iIndex][0] + 10 & " ; left X" & @CRLF)
        Case 3
            ConsoleWrite("3 ; From bottom left" & @CRLF & _
                    $aCoords[$iIndex][3] - 10 & " ; bottom Y" & @CRLF & _
                    $aCoords[$iIndex][0] + 10 & " ; left X" & @CRLF)

    EndSwitch

    ConsoleWrite(@CRLF)

EndFunc   ;==>_Notify_Locate_Test

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites

main desktop on  monitor 2 / monitor 1 to the left
---------------------------------------------------------------------------
0 ; From bottom right:
1030 ; bottom Y
1910 ; right X

1 ; From top right
10 ; top Y
1910 ; right X

2 ; From top left
190 ; top Y
-1430 ; left X

3 ; From bottom left
1070 ; bottom Y
-1430 ; left X


main desktop on  monitor 2 / monitor 1 to the right
----------------------------------------------------------------------------
0 ; From bottom right:
1070 ; bottom Y
3350 ; right X

1 ; From top right
190 ; top Y
3350 ; right X

2 ; From top left
10 ; top Y
10 ; left X

3 ; From bottom left
1030 ; bottom Y
10 ; left X
 

Edited by Deye
Link to post
Share on other sites
  • Moderators

Deye,

Those values are about what I would have expected - the UDF searches for the edges of the available display area. Try this code which allows you to define a monitor rather than the UDF looking at the whole area:

#include <WinAPISys.au3>
#include <WinAPIGdi.au3>

_Notify_Locate_Test(0, 1)
_Notify_Locate_Test(1, 1)
_Notify_Locate_Test(2, 1)
_Notify_Locate_Test(3, 1)

_Notify_Locate_Test(0, 2)
_Notify_Locate_Test(1, 2)
_Notify_Locate_Test(2, 2)
_Notify_Locate_Test(3, 2)

Func _Notify_Locate_Test($iLocation = 0, $iForceMonitor = 0)

    ; Look for monitors
    Local $aEDM = _WinAPI_EnumDisplayMonitors()
    If @error Then Return SetError(3, 0, 0)
    Local $aCoords[$aEDM[0][0] + 1][4], $hDisplay, $tRect, $iIndex = $iForceMonitor
    ; Get get coords for each monitor
    For $i = 1 To $aEDM[0][0]
        $hDisplay = $aEDM[$i][0] ; 1 for first handle, 2 for second
        $tRect = _WinAPI_GetMonitorInfo($hDisplay)
        If @error Then Return SetError(3, 0, 0)
        $aCoords[$i][0] = DllStructGetData($tRect[1], 'Left')
        $aCoords[$i][1] = DllStructGetData($tRect[1], 'Top')
        $aCoords[$i][2] = DllStructGetData($tRect[1], 'Right')
        $aCoords[$i][3] = DllStructGetData($tRect[1], 'Bottom')
    Next

    Switch $iForceMonitor
        Case 1 To $aEDM[0][0]
            ; Force monitor choice

        Case 0
            ; Determine which monitor will display notifications
            Local $iExtreme = (($iLocation > 1) ? (1000) : (0)) ; Set initial value to be adjusted as necessary

            For $i = 1 To UBound($aCoords) - 1
                ; Depending on location, look for leftest/rightest monitor edge
                Switch $iLocation
                    Case 0, 1
                        If $aCoords[$i][2] > $iExtreme Then
                            $iExtreme = $aCoords[$i][2] ; Furthest left/right edge found so far
                            $iIndex = $i ; Index of associated monitor
                        EndIf
                    Case 2, 3
                        If $aCoords[$i][0] < $iExtreme Then
                            $iExtreme = $aCoords[$i][0]
                            $iIndex = $i
                        EndIf
                EndSwitch
            Next

        Case Else
            ; Invalid monitor value
            Return SetError(1, 0, 0)
    EndSwitch

    ; Adjust data array depending on required location
    If $iForceMonitor Then
        ConsoleWrite("Monitor " & $iForceMonitor & " forced" & @CRLF)
    EndIf

    Switch $iLocation
        Case 0
            ConsoleWrite("0 ; From bottom right:" & @CRLF & _
                    $aCoords[$iIndex][3] - 10 & " ; bottom Y" & @CRLF & _
                    $aCoords[$iIndex][2] - 10 & " ; right X" & @CRLF)
        Case 1
            ConsoleWrite("1 ; From top right" & @CRLF & _
                    $aCoords[$iIndex][1] + 10 & " ; top Y" & @CRLF & _
                    $aCoords[$iIndex][2] - 10 & " ; right X" & @CRLF)
        Case 2
            ConsoleWrite("2 ; From top left" & @CRLF & _
                    $aCoords[$iIndex][1] + 10 & " ; top Y" & @CRLF & _
                    $aCoords[$iIndex][0] + 10 & " ; left X" & @CRLF)
        Case 3
            ConsoleWrite("3 ; From bottom left" & @CRLF & _
                    $aCoords[$iIndex][3] - 10 & " ; bottom Y" & @CRLF & _
                    $aCoords[$iIndex][0] + 10 & " ; left X" & @CRLF)

    EndSwitch

    ConsoleWrite(@CRLF)

EndFunc   ;==>_Notify_Locate_Test

That should allow you to get the values for a specific monitor. Please run it and post the results - I think it might solve your problem (and the request made by some other users a while back).

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites
main desktop on  monitor 2 / monitor 1 to the left
---------------------------------------------------------------------------
Monitor 1 forced
0 ; From bottom right:
1030 ; bottom Y
1910 ; right X


Monitor 1 forced
1 ; From top right
10 ; top Y
1910 ; right X

Monitor 1 forced
2 ; From top left
10 ; top Y
10 ; left X

Monitor 1 forced
3 ; From bottom left
1030 ; bottom Y
10 ; left X

Monitor 2 forced
0 ; From bottom right:
1070 ; bottom Y
-10 ; right X

Monitor 2 forced
1 ; From top right
190 ; top Y
-10 ; right X

Monitor 2 forced
2 ; From top left
190 ; top Y
-1430 ; left X

Monitor 2 forced
3 ; From bottom left
1070 ; bottom Y
-1430 ; left X

main desktop on  monitor 2 / monitor 1 to the right
----------------------------------------------------------------------------
Monitor 1 forced
0 ; From bottom right:
1030 ; bottom Y
1910 ; right X

Monitor 1 forced
1 ; From top right
10 ; top Y
1910 ; right X

Monitor 1 forced
2 ; From top left
10 ; top Y
10 ; left X

Monitor 1 forced
3 ; From bottom left
1030 ; bottom Y
10 ; left X

Monitor 2 forced
0 ; From bottom right:
1070 ; bottom Y
3350 ; right X

Monitor 2 forced
1 ; From top right
190 ; top Y
3350 ; right X

Monitor 2 forced
2 ; From top left
190 ; top Y
1930 ; left X

Monitor 2 forced
3 ; From bottom left
1070 ; bottom Y
1930 ; left X

 

Edited by Melba23
Added code tags
Link to post
Share on other sites
  • Moderators

Deye,

That looks as if it worked - let me redesign the _Notify_Locate function and then we can try with the UDF.

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites
  • Moderators

Deye,

Try this Beta and specify the monitor on which you want to have the notifications displayed - you will need to use _Notify_Locate_Mod and not _Notify_Locate to do this: <snip>

 

M23

Edited by Melba23
Beta code removed

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to post
Share on other sites
  • Melba23 changed the title to Notify - New version 28 Oct 21

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.

×
×
  • Create New...