Schrift
[thread]5934[/thread]

fork unter windows



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
hudo
 2003-11-29 18:42
#73335 #73335
User since
2003-11-20
72 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich moechte einen unabhaengigen Prozess unter windows starten
Auszug aus dem Code:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if (fork == 0 ) {

print "elem:\n $elem\n";
### $elem looks like http-string below
#http://www.mobile.de/SIDUXnSMwjASJfhgZ4t-.0eNg-t-vaNexlCsAsK%F3P~BmSB10LsearchPublicJ1070052814A1LsearchPublicIMotorhomeS-t-vpLtt~BmPA1B20A0/cgi-bin/da.pl?bereich=womo&id=11111111129267353

### windows
$a="file://d:/aaa_perl_win/$elem";
$a="file://d:/aaa_perl_win/$elem";
$a="file://d:/aaa_perlwin/aaafile.html";
#system ("start iexplore.exe file://d:/aaa_perlwin/aaafile.html");
#system ("start iexplore.exe $elem");

#exec("start iexplore.exe file://d:/aaa_perlwin/aaafile.html"); ### works but perl-programm ends
exec("start iexplore.exe", "http://www.mobile.de/SIDUXnSMwjASJfhgZ4t-.0eNg-t-vaNexlCsAsK%F3P~BmSB10LsearchPublicJ1070052814A1LsearchPublicIMotorhomeS-t-vpLtt~BmPA1B20A0/cgi-bin/da.pl?bereich=womo&id=11111111129267353");
#exec('start iexplore.exe "$elem" ');

### unix
#exec("konqueror",$elem); ###works with linux

CORE::exit(1);
}


Unter Linux funkts (Zeile mit konqueror)
Unter Windows funkts wenn eine .html-Datei angegeben wird (kein htttp-string) --- aber perl Programm endet (Explorer laeuft)
Unter Windows funkts nicht wenn ein http-string uebergeben wird.

Ein Teilproblem duerfte das Quoting sein:

Auf der Konsole funkts mit:
start iexplore.exe "http://www.mobile.de/SIDUXnSMwjASJfhgZ4t-.0eNg-t-vaNexlCsAsK%F3P~BmSB10LsearchPublicJ1070052814A1LsearchPublicIMotorhomeS-t-vpLtt~BmPA1B20A0/cgi-bin/da.pl?bereich=womo&id=11111111129267353"

Deshalb habe ich eine .bat-Datei geschrieben (Inhalt wie auf Konsole)
Das funktioniert auch nicht.

Kann mir jemand weiterhelfen ??
Crian
 2003-11-29 19:08
#73336 #73336
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Nimm einfache statt doppelte Anführungszeichen...
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
Dubu
 2003-11-30 13:50
#73337 #73337
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
exec() ist aehnlich wie system(): Entweder, du gibst das externe Programm ("start") und alle Argumente dazu ("iexplore.exe", "http://...") einzeln an, oder alles zusammen in einem String. Eine gemischte Form wie du es gemacht hast geht nicht.
hudo
 2003-12-04 20:19
#73338 #73338
User since
2003-11-20
72 Artikel
BenutzerIn
[default_avatar]
Hallo,

@Crian:
Mit einfachen (allen drei) hab ichs auch schon probiert...

@Dubu:
Wenn ich nich irre, hab ich da auch schon alle Moeglichkeiten ausprobiert, leider hats nicht funktioniert.
Aufgrund eines freundlichen Hinweises mach ich das jetzt folgendermassen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use Win32::Process;
use Win32;


if ( (defined $browser) && ($browser =~ /moz/i) ) {
Win32::Process::Create( my $ProcessObj,
"D:\\winxp\\MozillaFirebird\\MozillaFirebird-07\\MozillaFirebird.exe",
"MozillaFirebird $elem",
0, NORMAL_PRIORITY_CLASS, ".") || die ErrorReport();
} else {
Win32::Process::Create( my $ProcessObj,
"C:\\Programme\\Internet Explorer\\iexplore.exe",
"iexplore $elem",
0, NORMAL_PRIORITY_CLASS, ".") || die ErrorReport();
}



hier der link:
http://search.cpan.org/~gsar/libwin32-0.191/Process/Process.pm


Haette da noch zwei Fragen zu bat-file:
Code: (dl )
1
2
3
4
5
6
set arg1=eins
set arg2="d:\sounds\ringin.wav"
set arg3="d:\mei sounds\ringin.wav"

perl mei_prog.pl %arg1% %arg2% %arg3%
pause


1. Weiss jemand wie man im bat-file Kommentare macht ??
2. Bei arg3 funkts nicht weil da ein space im Pfad ist. Weiss jemand wies richtig geht ??

Gruss
Cremator
 2003-12-04 21:07
#73339 #73339
User since
2003-11-26
97 Artikel
BenutzerIn
[default_avatar]
Quote
1. Weiss jemand wie man im bat-file Kommentare macht ??

REM Hier dein Kommentar

Quote
2. Bei arg3 funkts nicht weil da ein space im Pfad ist. Weiss jemand wies richtig geht ??

programm "%1" "%2" "%3"
Strat
 2003-12-04 21:19
#73340 #73340
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Batch-Kommentare:
::
oder:
REM

ich bin mir nicht sicher, ob ich dein Problem verstehe, aber exec arbeitet immer so, dass das aktuelle programm beendet wird und stattdessen das mit exec ausgefuehrte programm weiterlaeuft. Da jedoch unter Windows fork ueber threads implementiert ist, funktioniert teilweise exec auch nicht so toll. Ich wuerde da auch Win32::Process verwenden...\n\n

<!--EDIT|Strat|1070565652-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Crian
 2003-12-08 15:51
#73341 #73341
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
Sicher, dass :: auch in .bat geht? Ging das nicht nur in *.cmd? *grübel*
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
Strat
 2003-12-08 17:32
#73342 #73342
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
@crian: keine ahnung; habe schon ewig kein reines command.com-script geschrieben; aber ich denke, es muesste gehen

[edit]
Klar geht's, es gibt ja auch unter command.com labels...
Code: (dl )
1
2
3
4
5
6
7
E:\temp>type out.bat
@echo off
::Kommentar
echo test

E:\temp>out.bat
test

[/edit]\n\n

<!--EDIT|Strat|1070897786-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Crian
 2003-12-08 18:05
#73343 #73343
User since
2003-08-04
5866 Artikel
ModeratorIn
[Homepage]
user image
stimmt ... ich meinte mich nur dunkel zu erinnern, damit mal Probleme gehabt zu haben, mag aber eine Falscherinnerung gewesen sein
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
Cremator
 2003-12-09 07:19
#73344 #73344
User since
2003-11-26
97 Artikel
BenutzerIn
[default_avatar]
Und :: Labels sind keine Kommentare, also warum sie dafuer missbrauchen?

Nochmal zum OP: Waren file-URLs nicht mit drei Slashes? Also "file:///c:/web/foo.html" ? Ich meine schon.
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2003-11-29 18:42.