Well, my script is actually a PAR::Packer's pp generated exe file, installed with a shortcut icon in some operators' desktops. It collects some logs left by other running systems according to some manual schedules, cross all that info, generates a report in HTML format, and saves it in a shared file repository. The number of times it runs every day, depends on the weekday. As the reports must be kept, different names are used (adding the timestamp for example).
Every night, one of the sysops has to check how the thing is going, and the fastest and simplest way for them is to double-click that icon and wait for the report to be displayed (instead of searching the repository for it as a second step).
Don't say it loud, but perl is not (officially) allowed in our systems, so we are hiding our scripts with PAR ;-)
| [reply] |
| [reply] |
When "double-clicked", exec() behaves as system() when IE is not already running, and system() behaves as exec() when IE is already running (displaying my doc in a new tab).
This happens with both original .pl script (ActivePerl) and .exe binary (pp's "parl").
Did you try the script in my first post? If not, may be you are lucky and don't have to fight against Windows, but if you have a Wintendo box with perl, save it along the first data file included in some folder, then double-click it in explorer and wait for IE to start. You should note that both programs are running together. Don't close neither of them, go to explorer window and double-click it again. This time, the program will finish as expected and IE will display a second tab with the doc.
I tried this on WinXP (Spanish) and Win2K3 (English), the same happens...
UPDATE: With behavior of exec() and system() I mean only the fact of waiting for the child process (IE) to close before exit or continue, respectively. A also tried my sample scripts on a machine with Firefox as the default web browser, and it does the same.
| [reply] [d/l] [select] |