Björn Sippel: Unterdrückung cmd-Fenster (Windows-Perl) bei Aufruf von externem Program

Beitrag lesen

Hallo zusammen,

habe folgendes Anliegen:

Mittels lokalen Webserver (Apache) sollen Registry-Daten
tabellarisch angelistet werden.
Gesammelt wird mittels reg.exe (W2K).
Das Perlscript funktioniert an der Konsole ohne Probleme.
Beim Aufruf über den Webserver(Browser) poppt jedoch
ganz kurz das (schwarze) CMD-Fenster auf.

Da im spateren Verlauf die Registry rekursiv durchlaufen wird,
ergibt das beim Aufruf über den Webserver (Browser) einen
regelrechten Wald von aufblinkenden Consolen-Fenster.

-- Wie kann die Anzeige des CMD-Fensters unterbunden werden ???
-- Dieses Registry-Beispiel soll exemplarisch sein.
   Naturlich konnen  Registrydaten auch mit den entsprechenden
    Modulen gelesen werden :-).

Meine bisherigen Versuche:
Verwendung von

  • Backticks
  • WIN32::Console

hatten keinen Erfolg.

Code:
--Ersetzung-
Da groesser und kleinerzeichen umgewandelt werden,
habe ich diese ersetzt.
Um den Code wieder "lesbar" zu machen,
muss mit folgendem Muster ersetzt werden:
#z# <
#u# >
#s# '

Code:
-------
#!C:\perl\bin\perl.exe

use CGI;
#use strict;
use FileHandle;
use WIN32::Console;

my @zprog;
my $zzpci;

print "Content-type: text/html\n\n";
print  #s##z#html#u##s#;
print  #s##z#head#u##s#;
print  #s##z#meta name="author" content="XXX#u##s#;
print  #s##z#/head#u##s#;
print  "#z#body#u#&nbsp;#z#p#u##z#h1#u#GCI with Windows Registry#z#/h1#u#";

my $keypci="HKLM\SYSTEM\ControlSet001\Enum\PCI";

@zprog = reg query $keypci \|findstr HKEY;

print  "#z#table border=1 cellpadding=5 style="line: solid blue"#u#";

--------------------------------------------------------

foreach $zzpci(@zprog){
print "#z#tr#u#";
print "#z#td#u#$zzpci#z#/td#u#\n";
print "#z#/tr#u#";
}

--------------------------------------------------------

print "#z#/table#u#";
print  "#z#/body#u##z#/html#u#";