Dos-Box entfernen
Maik Görgens
- perl
Hallo!
Gibt es eine Möglichkeit beim Ausführen von Perl-Skripten (nicht übers WWW) diese Dos-Box zu entfernen. Das der halt alles tut, dabei aber kein Fenster hat.
Vielen Dank und Grüße
Maik
Hallo!
Gibt es eine Möglichkeit beim Ausführen von Perl-Skripten (nicht übers WWW) diese Dos-Box zu entfernen. Das der halt alles tut, dabei aber kein Fenster hat.
Vielen Dank und Grüße
Maik
Ja. lege eine Veknüpfung an und wähle in den Eigenschaften derselben "minimiert ausführen".
fastix®
Hi!
Gibt es eine Möglichkeit beim Ausführen von Perl-Skripten (nicht übers WWW) diese Dos-Box zu entfernen. Das der halt alles tut, dabei aber kein Fenster hat.
Ja, da suche ich auch schon länger nach einer Möglichkeit, nur für PHP, aber das Problem ist vermutlich dasselbe.
Ich habe eine Lösung gefunden(das mit dem minimieren hat mir nicht gefallen), und zwar mit vbs(datei mit der Endung .vbs speichern):
set wshshell = CreateObject("WScript.Shell")
wshshell.Run "[hier Dein Kommandozeilenbefehl (ohne eckige Klammern), z.B. c:\perl\perl.exe script.pl]",0
Naja, ich finde es auch nicht so schön, aber vielleicht kennt ja jemand hier einen besseren Weg? Ich habe es auch als Service versucht, aber das geht auch nicht, da zumindest php nicht diese NET Befehle kennt, was glaube ich Voraussetzung ist.
Viele Grüße
Andreas
Halihallo Maik
Gibt es eine Möglichkeit beim Ausführen von Perl-Skripten (nicht übers WWW) diese Dos-Box zu entfernen. Das der halt alles tut, dabei aber kein Fenster hat.
Nun, es gibt lediglich Workarounds. Einer davon wäre:
#!/usr/bin/perl
use strict;
use Win32;
use Win32::Process;
Win32::Process::Create($Win32::Process::Create::ProcessObj,
'c:\usr\bin\perl.exe',
join(' ', @ARGV),
0,
DETACHED_PROCESS,
".") ||
die Win32::FormatMessage( Win32::GetLastError() );
gibt zwar auch die DOS-Box, aber nur für ein paar Millisekunden. Wie gesagt: Workaround.
Viele Grüsse
Philipp
Moin Moin !
Es geht viel einfacher, orausgesetzt, Du benutzt ein "fertiges" Perl von ActiveState:
Dort gibt es im gleichen Verzeichnis wie PERL.EXE auch ein WPERL.EXE (Standard: C:\PERL\BIN), daß von sich aus keine DOS-Box öffnet (aber trotzdem in einer solchen aufgerufen werden kann und dann auch STDIN/STDOUT/STDERR dorthin schreibt).
Da Perl nicht auf eine Extension festgelegt ist, benenne Perl-Scripte, die ohne DOS-Box laufen sollen, in *.wpl o.ä. um und verknüpfe *.wpl mit WPERL.EXE (Rechtsklick, "Öffnen mit ...", "Durchsuchen"). Damit kannst Du diese Scripte per Doppelklick aus dem Exploder starten, ohne daß eine DOS-Box auftaucht.
Alexander