vitoco has asked for the wisdom of the Perl Monks concerning the following question:
I have a script that creates a file with a registered file type extension. When it is completed, I want to automagically run an application to open and display it.
I can use exec() as the last command of my script, and it works, except that the script waits for the app to close, just like system().
I'm not calling a program to open the doc, instead, I'm calling directly the created file, and expect Windows to chose for the proper or default app for that extension (just like a double click over the file in explorer).
Is there a workaround to this problem other than to call the application with my doc as a parameter using a list? My file is pure HTML, and I don't want to force the use of IE.
BTW, if I run a second instance of my script while the first one is waiting for IE to exit, it exits as expected just after the doc is displayed on a second tab, even if I use system()!!! (i.e. it does not wait... Argh!)
Test case:
son.pl:
#!perl -w use strict; warn "Calling a son...\n"; # Choose one: exec("son.html"); #system("son.html"); #exec("son.txt"); # The following does not wait: #exec("notepad.exe son.txt"); #exec("notepad.exe","son.html"); exit 0;
son.html:
<h1>JAPH</h1>
son.txt:
JAPH
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: exec() on Windows
by BrowserUk (Patriarch) on May 25, 2010 at 21:54 UTC | |
by vitoco (Hermit) on May 25, 2010 at 22:08 UTC | |
by BrowserUk (Patriarch) on May 25, 2010 at 22:18 UTC | |
by vitoco (Hermit) on May 25, 2010 at 23:30 UTC | |
by BrowserUk (Patriarch) on May 25, 2010 at 23:47 UTC | |
| |
Re: exec() on Windows
by lamprecht (Friar) on May 26, 2010 at 12:09 UTC | |
by vitoco (Hermit) on May 26, 2010 at 14:00 UTC | |
by Corion (Patriarch) on May 26, 2010 at 14:03 UTC | |
by ikegami (Patriarch) on May 26, 2010 at 14:57 UTC |