Maik Görgens: Dos-Box entfernen

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

  1. 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®

  2. 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

  3. 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

  4. 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

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"