With this module I monitor changes in a directory:
----------------------------------------
&mailprot("Monitoring gestartet");
$WatchSubTree = 1;
$Events = 'FILE_NAME';
Win32::ChangeNotify::FindFirst($monitor, $MonDir, $WatchSubTree,
FILE_NOTIFY_CHANGE_FILE_NAME
);
while ($monitor->FindNext()) {
$monitor->Wait( INFINITE );
# sleep(300);
$Inhalt = "";
if (! opendir (BKDIR, "$MonDir")) {
&mailprot("can't opendir $MonDir:\n $!\n");
}
while (defined ($fname = readdir(BKDIR))) {
next if $fname =~ /^\.$/;
next if $fname =~ /^\.\.$/;
next if $fname =~ /@ReadMe\.htm/i;
next if $fname =~ /^Bitte Version und Sprache/i;
$Inhalt = "${Inhalt}\n$fname";
}
close BKDIR;
&mailprot("Aenderungen im Briefkasten:\n$Inhalt");
}
END{ &mailprot("Monitoring gestoppt"); }
exit 0;
--------------------------------
I compiled the program whith perl2exe to an exe file.
If I start the program from comand line all works fine but if it runs
as service I get no
message if something changes in the monitored directory but i get the
start message
(see first line in script)
The service was created as described in Dave Roth's Book
'Win32 Perl Scripting', Page 274 in the following way:
instsrv.exe "monitor" C:\WIN_NT\system32/srvany.exe
Modifying the registry was not as described in the book. I had to create
the Parameters key.
Should the key not be there already ?
That's what I now have in the registry:
'Monitor' has the keys Enum, Parameters, Security
Parameters has the String Values Application REG_SZ Path to my
exe file
AppParameters REG_SZ
(Default)
REG_SZ (Value not set)
If I start or stop the service I get the start or stop message by mail
but if I create or delete a file in the monitored directory I get no
message.
Why ?
Details: Win2000 (upgrade from NT) SP4
ActiveState perl 5.6.1.623
Win32::ChangeNotify 1.02
Michael
--
Michael Meltzer AED-SICAD AG Lilienthal-Str. 7 D-85579 Neubiberg
Tel.: +49 89 45026 108 Fax: +49 89 45026 113
[EMAIL PROTECTED]
http://www.aed-sicad.de/
_______________________________________________
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs