use Win32::AdminMisc ; my $prog = q(c:\\windows\\notepad.exe); my $pid = Win32::AdminMisc::CreateProcessAsUser( $prog, Flags => DETACHED_PROCESS, Show => SW_MINIMIZE ); if ($pid) {print "Success starting $prog, new pid is $pid";} else { print "Failure starting $prog";}