The CGI calls the programs on the server-side, but it looks like the OP
might be expecting both Apache and IE to be running on the same machine,
application launching user apps offends my sense of program design, not
to mention security.
However, assuming the OP knows what he's doing (difficult as it is), he
may want to look at using the MS Windows "start" keyword in his system()
system("start notepad.exe") && print "error launching notepad";
This will allow the notepad process to separate (vaguely similar to
"fork") from the CGI process.
There are myriad complications that this introduces, however. *IF*
Apache successfully executes this command and a notepad process does
indeed start, the notepad will run with the permissions of the Apache
service, not the logged-in user. I'm not sure what effect this could
have, and I have no intention of implementing this to find out.
This is an ugly and offensive hack which, if it works at all, will
instantly fail if the Apache server and browser run on separate
machines. There have been hundreds of posts of people attempting what
you post here and being shocked to find that no Notepad window appears
on the client machine, but the server's sysadmin finds a Notepad session
open on his desktop out of nowhere.
You have been warned, and Google will retain proof of warning
Two penguins were walking on an iceberg. The first penguin
said to the second, "you look like you are wearing a tuxedo."
The second penguin said, "I might be..."
--David *** , Twin Peaks