#!perl use warnings; use strict; use Data::Dumper; use Win32::Process; use File::Slurp; use SystemTray::Applet; use POE; # auto-includes POE::Kernel and POE::Session use POE::Component::DirWatch; my $user = "mwb"; my $app = SystemTray::Applet->new( text => 'Candela Dashboard', icon => 'C:\Documents and Settings\Mike\Desktop\Candela\dashboard.ico', callback => &poe_dir_watcher, immediate => 1, ); sub poe_dir_watcher { POE::Session->create( inline_states => { _start => sub { $_[KERNEL]->yield("next") }, next => sub { print "tick...\n"; $_[KERNEL]->delay(next => 1); }, }, ); my $watcher = POE::Component::DirWatch->new( alias => 'dirwatch', directory => 'V:', file_callback => sub{ load_crm($_[0]) }, interval => 1, ); POE::Kernel->run(); return; } sub load_crm { my ($file) = @_; my @data; if ($file =~ /$user/) { my @data = read_file("$file"); chomp @data; # replace ^ with | for (2..4) { ($data[$_] = $data[$_]) =~ s/\^/|/g; } my $result = run_firefox(\@data); unlink($file) if $result; } } sub run_firefox { my ($data) = @_; my $firefox = 'C:\Program Files\Mozilla Firefox\firefox.exe'; my $crm_url = "firefox http://ext-test.candelacorp.com/crm/nomo.pl" . "?cust_num=" . $data->[0] . "&cont_num=" . $data->[1] . "&prod_num=" . $data->[2] . "&prod_qty=" . $data->[3] . "&prod_prc=" . $data->[4] ; print $crm_url, "\n"; Win32::Process::Create( my $ProcessObj, $firefox, $crm_url, 0, NORMAL_PRIORITY_CLASS, "." ) || die ErrorReport(); return 1; } sub ErrorReport{ print Win32::FormatMessage( Win32::GetLastError() ); }