|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
[batch]non fare apparire la shell
Come fare per non fare apparire la shell quando si lancia un file .bat?
|
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
temo che non si possa; se è proprio essenziale credo dovresti lanciarlo da un tuo eseguibile che consuma automaticamente l'output prodotto da cmd.exe rediretto su una pipe.
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
si in VB lo so fare...ma cercavo qualcosa da inserire direttamente nel .bat in modo da non far comparire la shell per i lanci manuale a da java. In java come potrei farlo?
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Non basta mettere un
Codice:
@ECHO OFF
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
|
Così evita che si vedano i comandi ma non che si apra la shell.
Tra l'altro, se c'è output dei suoi comandi, si vedrà comunque. Secondo me non c'è modo di "nascondere" la shell se non creando un eseguibile.
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. --Gerald Weinberg |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Quote:
Non mi risulta sia possibile, a meno che non sia cambiato qualcosa ultimamente. Soluzioni alternative - Invece che far partire direttamente il file .bat fanne un link, e imposta il link affinche parta minimizzato. Se inoltre il file bat si con clude con l'esecuzione di un programma, e non ne devi attendere il ritorno, usando start puoi far terminare il bat prima del programma vero e proprio. Non e' una bella soluzione, ma minimizzi il tempo che il file .bat appare sulla barra in basso - Usi un vbs invece che un bat. - Usi qualche tool che faccia proprio questo. Se cerchi con google ne trovi.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
[EDIT...]
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! Ultima modifica di DanieleC88 : 03-06-2008 alle 00:19. Motivo: non c'entrava niente col topic :-| |
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Sep 2006
Città: Catania
Messaggi: 742
|
Se devi eseguire del codice java potresti utilizzare JAVAW
Quote:
__________________
Voglio sapere di che tessuto deve essere un discorso per non fare neanche una piega Alternativa ai pacchi di NLITE MacBook & Canon Ixus 80 |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Sep 2006
Città: Catania
Messaggi: 742
|
Quote:
Oppure un altro metodo è passare tutti i comandi dentro java.Invece di lanciare il bat, lanci i vari comandi
__________________
Voglio sapere di che tessuto deve essere un discorso per non fare neanche una piega Alternativa ai pacchi di NLITE MacBook & Canon Ixus 80 |
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Bhe, a dire il vero, nel progetto (Java) su cui sto lavorando per lanciare un paio di exe esterni usiamo un file .bat che lanciamo da codice java con la solita classe Process... ti allego uno spezzone di codice:
Codice:
String[] args = {"nest.bat"};
String osName = System.getProperty("os.name");
String[] cmd = new String[3];
if (osName.equals("Windows 95"))
{
cmd[0] = "command.com";
cmd[1] = "/C";
cmd[2] = args[0];
}
else
{
cmd[0] = "cmd.exe";
cmd[1] = "/C";
cmd[2] = args[0];
}
System.out.println("Sistema Operativo: " + osName);
System.out.println("Execting " + cmd[0] + " " + cmd[1] + " " + cmd[2] + "...");
Process p0 = Runtime.getRuntime().exec(cmd);
// svuotamento buffer del processo...
StreamGlobber errorGlobber = new StreamGlobber(p0.getErrorStream(), "ERROR");
StreamGlobber outputGlobber = new StreamGlobber(p0.getInputStream(), "OUTPUT");
errorGlobber.start();
outputGlobber.start();
Codice:
/**
* classe utility che esegue lo svuotamento del buffer dello stream passato
* in ingresso.
* Utile per svuotare l'output & error stream della shell di Windows
* (cmd.exe) utilizzata per il lancio di processi esterni.
*/
class StreamGlobber extends Thread
{
InputStream is;
String type;
public StreamGlobber(InputStream is, String type)
{
this.is = is;
this.type = type;
}
@Override
public void run()
{
try
{
BufferedReader br = new BufferedReader( new InputStreamReader(is));
String line = null;
while ((line = br.readLine()) != null)
{
System.out.println(type + ">" + line);
}
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
}
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 03-06-2008 alle 15:04. |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
@UP:
In ogni caso ho trovato questo programma di utility sul web che sembra fare al caso tuo: Invoke. > pagina spiegazioni > pagina Invoke + download Ciao
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:47.




















