2013-02-28 19 views
5

Bir javascript'ten bir java programı yürütmek ve çıktı almak istiyorum.WshShell.Exec yöntemini kullanarak komut istemi penceresini gizlemek istiyorum

Intailly ı aşağıdaki kodu ile çalıştı:

WshShell = new ActiveXObject("WScript.Shell"); 
var launch="cmd.exe /c java -classpath . HelloWorld "; 
var cmdRun = WshShell.Run(launch,0,true); 

Çalıştır yöntemi ile i sınıfının çıkışını almak mümkün değilim.

Sonra ben aşağıda kodu ile çalıştı:
WshShell = new ActiveXObject("WScript.Shell"); 
var launch="cmd.exe /c p java classpath . HelloWorld "; 
var cmdRun = WshShell.Exec(launch); 
while (cmdRun.Status == 0) // wait for the command to finish 
{ 
sleep(100); 
} 
var output = cmdRun.StdOut.ReadAll(); 
alert(output); 

Şimdi ben değişken çıktıda çıktı almak mümkün.

Sorunum, Çalıştır yöntemini kullanıyorum komut dosyasını gizleyebilir (WshShell.Run parametrelerini geçirerek (başlat, 0, doğru)) Exec yöntemini kullanarak komutumuzu gizleyemiyorum. Bu komutun gizli kalmasını istiyorum.

Bu konuda bana yardımcı olabilir misiniz? Teşekkürler

cevap

9

Evet, bu tüm wsh komut dosyalarını rahatsız ediyor. wshExec nesnesini gizlemenin hiçbir yolu, yalnızca .Run bu seçeneğe izin verir, ancak bu durumda StdOut yoktur. Kısaca, tek yol, çıktınızı dosyaya yönlendirmektir.

WshShell = new ActiveXObject("WScript.Shell"); 
var launch ="cmd.exe /c java -classpath . HelloWorld > output.txt"; 
var cmdRun = WshShell.Run(launch,0,true); 
+0

Konforunuz için teşekkürler Panayot da bunu düşündüm! – user2118354

+0

Eh, sadece StackOverflow'a hoşgeldiniz demeyi unuttum ;-) Bu arada, kabul edildiğinde geçerli bir cevap işareti alırsınız, bu da her iki tarafa da puan pompalayacaktır, bu durumda ben ve siz de Sorunun cevabını bilmek için forumun dinleyicileri ;-) –

+0

Teşekkür ederim Panayot !! Önerdiğin gibi yaptım. – user2118354

İlgili konular