Schrift
[thread]5000[/thread]

Problem bei Systemaufruf (MS-DOS öffnet sich)

Leser: 1


<< >> 9 Einträge, 1 Seite
Froschpopo
 2005-05-04 00:37
#43917 #43917
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
ich weiss nicht ob es was mit Tk zu tun hat, ich glaube eher nicht, bin aber auch nicht ganz sicher.

Also ich hab ein Programm gebaut in dem ich einen Systemaufruf absetze:
Code: (dl )
1
2
3
eval {
   system("start \"titel\" http://yahoo.de");
}

den eval-block hatte ich gedacht, um den rückgabewert von system() abzufangen, denn das warten auf ein rückgabewert friert die GUI für einige Sekunden ein.

Das Programm läuft eigentlich einwandfrei, aber wenn ich es mit Par in ein ausführbares Format (.exe) umwandle, dann passiert folgendes:

Wenn ich den o.g. Aufruf starte, öffnet sich ca. 2 Sekunden ein DOS-Fenster welches sich anschließend auch wieder selber schließt.
Erst danach wird wie gewünscht der "start...."-befehl abgesetzt.

Warum ist das so? Warum nur beim ausführbaren "Format?"
Wenn ich die normale Perl-Version starte, dann passiert das mit dem DOS-Fenster nicht!

Wichtig: Das Dos-Fenster öffnet sich nur wenn der systemaufruf abgesetzt wird.\n\n

<!--EDIT|Froschpopo|1115152774-->
esskar
 2005-05-04 01:28
#43918 #43918
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
C:\Dokumente und Einstellungen\sak>help start
Startet ein eigenes Fenster, um ein bestimmtes Programm oder einen Befehl
auszuführen.
Froschpopo
 2005-05-04 01:38
#43919 #43919
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
hmmm wie kann ich das abschalten?? warum öffnet sich das nicht, wenn ich das Programm mit "perl pro.pl" ausführe?
GwenDragon
 2005-05-04 10:23
#43920 #43920
User since
2005-01-17
14790 Artikel
Admin1
[Homepage]
user image
start ist ein Befehl der Konsole. Deswegen das Fenster.
Froschpopo
 2005-05-04 10:35
#43921 #43921
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
wie kann ich denn jetzt nen browser starten ohne dieses DOS-Fenster?
Crian
 2005-05-04 12:55
#43922 #43922
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Wenn Du weißt, wo das binary liegt, ruf das doch direkt auf.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
GwenDragon
 2005-05-04 13:32
#43923 #43923
User since
2005-01-17
14790 Artikel
Admin1
[Homepage]
user image
[quote=Froschpopo,04.05.2005, 08:35]wie kann ich denn jetzt nen browser starten ohne dieses DOS-Fenster?[/quote]
Du liest die Registry aus für http und https und startest dann den dort eingetragenen Browser.
Crian
 2005-05-04 13:48
#43924 #43924
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
das klingt eleganter
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
pKai
 2005-05-04 15:41
#43925 #43925
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
Zur Erklärung des beobachteten Phänomens:
start ist kein Programm (Es gibt keine start.exe o. ä.), sondern ein interner Befehl des $ENV{COMSPEC}.
Wenn du perl pro.pl aufrufst, ist das Command-Fenster aus dem heraus das start abgehandelt wird schon da.
Wenn du die exe startest, muss das bewusste Fenster (der Cmd-Prozess) der das start dann durchführt, erstmal erschaffen werden.
Die elegante Alternative ist natürlich das start so nachzubauen, wie von GwenDragon beschrieben.
I sense a soul in search of answers.
<< >> 9 Einträge, 1 Seite



View all threads created 2005-05-04 00:37.