Home > Archive > PERL Miscellaneous > May 2004 > Cannot launch simple applications (notepad, java) using Apache and PERL(CGI)
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Cannot launch simple applications (notepad, java) using Apache and PERL(CGI)
|
|
|
| Hi:
Introduction:
-------------
I need to launch an Xwindows application and a java application from a
web-page running on Apache. The first is an exe file and the second is
a java file. I have a simple perl script to run these. These run fine
and the perl script launches the 2 applications (seperately), but I am
unable to get them to launch from an IE browser running on apache:
----------------------------
#!c:/perl/bin/perl.exe -w
use strict;
use CGI;
my $q = new CGI;
print $q->header( "text/plain" );
system "cmd.exe /c test.bat";
#system "xapp ";
----------------------------
test.bat is as follows:
-----test.bat-------
CALL notepad
REM CALL java -jar myapp.jar
--------------------
DETAILS:
--------
1. I can run on Windows 2000 from the DOS prompt as follows:
*xwindows application (xapp.exe)
c:> xapp
*Java application.
c:> test.bat
This brings up the GUI for my java application.
2. The perl script above works and launches the applications in a
seperate window. However, it waits for the application to finish- does
not spawn a thread and forget about them.
QUESTION: How can I do that? e.g. the notepad application is launched
and control returns irrespective of what the user does in the
application. Currently, the DOS prompt freezes till the user exists
the application and retruns.
3. The above script does not run through the web-browser (IE running
apache). I had expected a seperate window to be launched for notepad,
or the xapp or the java application, but that does not happen.
QUESTION: I am lost. It looked like a simple problem and this must
have been experience before by folks. Would appreciate guidance
through this.
Thanks,
Jai.
| |
| Gregory Toomey 2004-05-24, 1:32 am |
| JDS wrote:
> Hi:
>
> Introduction:
> -------------
> I need to launch an Xwindows application and a java application from a
> web-page running on Apache.
You want to run programs from a browser? Browsers interpret HTML &
occasionally run Javascript. You may be able to do this from javascript.
gtoomey
| |
| Tim Hammerquist 2004-05-24, 5:32 am |
| Gregory Toomey <nospam@bigpond.com> wrote:
> JDS wrote:
>
> You want to run programs from a browser? Browsers interpret HTML
> & occasionally run Javascript. You may be able to do this from
> javascript.
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,
so JavaScript may well be a different but equally effective solution *in
this case*.
I'll not discuss how much the concept of a CGI and/or Javascript
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()
calls. I.e.:
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 sy min finds a Notepad session
open on his desktop out of nowhere.
You have been warned, and Google will retain proof of warning
indefinitely.
HTH,
Tim Hammerquist
--
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 Lynch, Twin Peaks
| |
| Tim Hammerquist 2004-05-24, 5:32 am |
| Tim Hammerquist <tim@vegeta.ath.cx> wrote:
> Gregory Toomey <nospam@bigpond.com> wrote:
[ snip ][color=darkred]
> You have been warned, and Google will retain proof of warning
> indefinitely.
Apologies for any confusion. Where I said "you" (in several places)
I was refering to the OP.
Cheers,
Tim Hammerquist
--
A supercomputer is a device for converting
a CPU-bound problem into an I/O bound problem.
-- Ken Batcher
| |
|
| The applications that need to run are:
1. An X-windows application.
2. A Java Application.
Currently, I do understand the fact that the application that will
start will run on the server side. I also know that the java
application will need to be made into an applet and the X-windows
application will be also replaced by a web-based application. However,
I want to give a demo show what will eventually happen. In this case,
there is only one machine involved- the apache server and the java
application and the x-windows application currently all run on the
same windows host.
What beats me is the fact that I cannot launch an application on the
same machine- I should be able to run the 4 lines of code to start a
notepad through the webserver. At this point, it is sufficient for my
demo purposes to be able to launch an application using apache and
Perl as mentioned in my email.
Hope this explains the motivation.
Thanks,
Jai.
Johan Louwers <suntacNOSPAMPLEASE@dds.nl> wrote in message news:<big3b05mt2sje5pt9oot5ekdrsv2ln94sr@4ax.com>...[color=darkred]
> What exactly do you want to do?
>
> The things you tell in your mail are running applications ... what
> kind of applications.... where is the application output send to?
>
>
> Regards,
> Johan Louwers.
>
>
> On 23 May 2004 20:51:20 -0700, jds@iti-oh.com (JDS) wrote:
>
| |
|
| "JDS" <jds@iti-oh.com> wrote in message
news:6b2d6822.0405240618.cccf714@posting.google.com...
[snip top posting]
[remove non-existent newsgroup from header]
>
> What beats me is the fact that I cannot launch an application on the
> same machine- I should be able to run the 4 lines of code to start a
> notepad through the webserver. At this point, it is sufficient for my
> demo purposes to be able to launch an application using apache and
> Perl as mentioned in my email.
>
I do not know about apache under windows, but under real operating
systems, there is the issue of privilege. the cgi scripts may not
have the required priviledges to launch a windows application.
gnari
|
|
|
|
|