#!/usr/bin/perl -- use strict; use warnings; use Win32::GuiTest qw(:ALL); # Let's see notepad system("start notepad.exe"); sleep 1; my $notepad = GetForegroundWindow(); # http://search.cpan.org/perldoc?Win32::GUI::Constants use constant WM_SYSCOMMAND => 0x0112 ; use constant SC_MAXIMIZE => 0xF030 ; use constant SC_MINIMIZE => 0xF020 ; use constant SC_RESTORE => 0xF120 ; # google sendmessage maximize # // Send system command to maximize the window. # SendMessage (nHwnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0); # this works SendMessage( $notepad, WM_SYSCOMMAND, SC_MAXIMIZE, 0); sleep 1; SendMessage( $notepad, WM_SYSCOMMAND, SC_RESTORE, 0); select undef, undef, undef, 0.5; SendMessage( $notepad, WM_SYSCOMMAND, SC_MINIMIZE, 0); select undef, undef, undef, 0.5; # no work, but in Win32::ActAcc its btnMaximize "{push button}Maximize" PushButton( "Maximize", 0);# didn't work, PushButton( 0xF030, 0);# didn't work SendMessage( $notepad, WM_SYSCOMMAND, SC_MAXIMIZE, 0); select undef, undef, undef, 0.5; SendMessage( $notepad, WM_SYSCOMMAND, SC_RESTORE, 0); SendKeys("{ESC}%{SPACEBAR}");# ALT+SPACEBAR opens .../max/min/close dialog select undef, undef, undef, 0.5; SendKeys("x"); # chose maximize select undef, undef, undef, 0.5; SendKeys("{ESC}%{F4}"); # close (Alt+F4)