{ use constant HWND_BROADCAST => 0xffff; use constant WM_SETTINGCHANGE => 0x001A; use constant SMTO_ABORTIFHUNG => 2; my $send; sub BroadcastEnv { $send ||= Win32::API->new( 'user32', 'SendMessageTimeout', 'LLLPLLL', 'L', # hWnd, msg, wParam, lParam, flags, msTimeout, pLResults ) or die "Can't load SendMessageTimeout(): $^E\n"; $send->Call( HWND_BROADCAST(), WM_SETTINGCHANGE(), 0, "Environment", SMTO_ABORTIFHUNG(), 5000, 0, # unpack 'L', pack 'P', my $res= ' 'x8; ); } }