Many thanks for the useful pointers.
For now, I've opted for the simplest way out and have built something that lets me manipulate a standard window; I can use it to 'block out' the area of interest on the desktop and it returns the X11-style attributes of the window. Code follows:-
Read more code in this 'spoiler', if you want...# -------------------------------------------------------------------- +------- # xrselw32.pl - Use a resizable window to define a desktop monitoring + area # jjg, 5-Aug-2016 # # Description: # A quick'n'dirty tool to allow me to use a standard # Windows resizable 'Window' to block-out a region # of the desktop and return the location in an X11 # 'WxH+X+Y' format. # # Notes: # 1. I can't work-out how to place buttons and other # objects within the window (there doesn't seem to be # any Tk-like concept of 'pack' or similar in Win32::GUI), # so I took the KISS approach and have left the system # menu(s) on the main window; this allows me to use a # single button to accept the window and use the # "system menu" and '[X]' window button to act as a # 'Cancel' button. # # 2. I also can't work-out how to properly communicate # 'outside' of the Dialog 'monitoring' thing other than # through the use of global variables = kludge. Hence, # I'll make this whole silly thing an external tool, much # the same as I do with the linux version. Inefficient # but Pffft. # # 3. This is something that works Ok, so I'm not # particularly worried that it's not as pretty as # it might be... # # References: # http://www.perlmonks.com/?node_id=1169110 (my question) # http://search.cpan.org/~kmx/Win32-GUI-1.13/GENERATED/Win32/GUI/Tu +torial/Part1.pod # # -------------------------------------------------------------------- +------- use Win32::GUI(); Get_Script_Name(\$my_proc, \$my_path); # Determine the name of this s +cript $W_INIT = 440; # Initial window size $H_INIT = 330; $main_window; # Global declaritive ('Wot!?') $W, $H, $X, $Y; # GLobals that define the capture area: WxH+X+Y $position_status = 0; # ...and their validity Place_Window(); # Get the window position if ($position_status) { printf("%dx%d+%d+%d", $W, $H, $X, $Y); } else { printf(""); } # ==================== end mainline ====================
Ultimately, I still hope to work out how to draw a simple outlined rectangle... but this script works Ok.
Again, many thanks for the assistance.
In reply to Re: How Do I Select An Area of the Win32 Desktop and Return Its Size and Location?
by ozboomer
in thread How Do I Select An Area of the Win32 Desktop and Return Its Size and Location?
by ozboomer
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |