#! perl -slw use strict; use Win32::API::Prototype; use constant PROCESS_TERMINATE => 1; ApiLink( 'Kernel32', 'HANDLE OpenProcess( DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwProcessId )' ) or die $^E; ApiLink( 'Kernel32', 'BOOL TerminateProcess( HANDLE hProcess, UINT uExitCode )' ) or die $^E; if( my $hProc = OpenProcess( PROCESS_TERMINATE, 0, $ARGV[ 0 ] ) ) { print "Got handle to process; Can you kill it?"; die 'Drat' if =~ m[^y]i; print "I'll try"; print TerminateProcess( $hProc, -1 ) ? 'It sleeps with da fishies!' : 'Double drat!'; } else { print "OpenProcess failed: $^E"; }