use strict; use warnings; use 5.014; use Win32::GUI(); use Win32::GUI qw{ WS_EX_TOPMOST}; my ($InputDir, $TopDir, $InputFileName, $dw, $dh, $desktop, $Window); $TopDir = 'D:\My documents'; # Change this to an existing direcotry of yours $desktop = Win32::GUI::GetDesktopWindow(); $dw = Win32::GUI::Width($desktop); $dh = Win32::GUI::Height($desktop); $Window = Win32::GUI::Window->new( -name => 'main', -text => 'Main window', -pos => [20/100*$dw, 20/100*$dh], -size => [50/100*$dw, 60/100*$dh], -onTerminate => \&TerminateWindow, -addexstyle => WS_EX_TOPMOST, -dialogui => 1, -tabstop => 1, -cancel => 1, ); $Window -> AddButton ( -name => 'ButtonCommit', -pos => [10,10], -size =>[16/100*$dw,3.5/100*$dh], -text => 'Commit changes', -onClick => \&Commit); sub Commit { $InputDir = Win32::GUI::BrowseForFolder( -root => $TopDir, -includefiles => 1, -title => 'Select directory for parameter file', -text =>'Selext directory for parameter file', -size => [50/100*$dw, 50/100*$dh], -addexstyle => WS_EX_TOPMOST,); $InputFileName = Win32::GUI::GetOpenFileName( -title => 'Select the input file', -directory => $InputDir, -file => "\0" . " " x 256, -filter => ["Text files (*.txt)" => "*.txt", "All files", "*.*", ], -text => 'text Select input file'); } # end sub Commit $Window ->Show(); Win32::GUI::Dialog(); sub TerminateWindow { return -1; }