Results 1 to 6 of 6

Thread: Cannot launch simple applications (notepad, java) using Apache and PERL(CGI)

  1. #1
    Join Date
    Jan 2009
    Posts
    5

    Cannot launch simple applications (notepad, java) using Apache and PERL(CGI)

    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 (separately), 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.

  2. #2
    Join Date
    Feb 2008
    Posts
    1,852

    Re: Cannot launch simple applications (notepad, java) using Apache and PERL(CGI)

    You want to run programs from a browser? Browsers interpret HTML & occasionally run Javascript. You may be able to do this from javascript.

  3. #3
    Join Date
    Jan 2008
    Posts
    1,521

    Re: Cannot launch simple applications (notepad, java) using Apache and PERL(CGI)

    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 sysadmin finds a Notepad session open on his desktop out of nowhere.

  4. #4
    Join Date
    Jan 2009
    Posts
    5

    Re: Cannot launch simple applications (notepad, java) using Apache and PERL(CGI)

    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.

  5. #5
    Join Date
    May 2008
    Posts
    2,297

    Re: Cannot launch simple applications (notepad, java) using Apache and PERL(CGI)

    I had this same problem, and wanted to be able to launch applications on the server machine using CGI and Apache (for a valid reason I assure you).

    I was using the system() function call in my cgi, but notepad.exe was not showing up on my server's desktop.

    (I am using Windows XP)
    I went to Control Panel -> Administrative tools -> Services
    Right click on Apache2.2 and select Properties.

    Logon Tab.

    Under the "Local System account" radio button , there is a "Allow service to interact with desktop" turn that on, and restart the service, and then the perl system() call will work correctly and notepad.exe will show up in the server desktop.

  6. #6
    Join Date
    Jun 2009
    Posts
    1

    Re: Cannot launch simple applications (notepad, java) using Apache and PERL(CGI)

    Hi,

    I still have the same problem.
    I wanted to be able to launch simple applications on the server machine using CGI and Apache. e.i. notepad.

    I am using Windows XP and apache 2.2.11
    I did the "Allow service to interact with desktop"

    Can anyone give me the simple perl/cgi script that does that.

    Thanks,

Similar Threads

  1. Java runtime detects fatal error on notepad
    By Naranbaatar in forum Software Development
    Replies: 9
    Last Post: 20-04-2013, 11:16 AM
  2. How to calculate simple interest in java ?
    By xanix in forum Software Development
    Replies: 7
    Last Post: 08-12-2011, 11:47 PM
  3. Demo of a simple 2D game in Java
    By Monty1 in forum Guides & Tutorials
    Replies: 4
    Last Post: 01-12-2010, 02:52 AM
  4. Perl Simple Functions
    By Osman in forum Software Development
    Replies: 4
    Last Post: 01-12-2009, 04:49 PM
  5. Running simple java program.....
    By Kushan in forum Software Development
    Replies: 4
    Last Post: 16-11-2009, 03:38 AM

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Page generated in 1,713,470,893.72737 seconds with 16 queries