use strict; use Win32::API; print printFile("G:\\dev\\win32\\test.html"); ################ sub printFile{ #call shellExecute with the print verb to print a file # http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnarvb4/html/msdn_shelexec.asp my $file=shift || return -1; if(!-e $file){return "$file does not exist";} print "printing $file\n"; my $ShellExecute = new Win32::API("shell32", "ShellExecuteA", ['N','P', 'P', 'P', 'P', 'I'], 'N') || return 0; my $rtn=$ShellExecute->Call( 0, #hwnd "Print", #open or print. 'open' opens file specified (exe or doc file). 'print' prints doc file $file, #cmd to execute or file to open "", #Parameters to be passed to application, should be null if document "", #default directory 1 #Show state: 0=hide(SW_HIDE),1=normal(SW_SHOWNORMAL),6=minimized(SW_MINIMIZE),3=maximized(SW_MAXIMIZE) ); if($rtn<33){return $rtn;} else{return $rtn;} }