Non penso tu possa conoscere la dimensione della finestra del programma: è dipendente dal sistema operativo e, inoltre, potresti anche avviare un programma console che non ha alcuna finestra. Se il programma chiamante non ha alcun modo per comunicare questa informazione all'esterno, semplicemente, non otterrai in nessun modo questa informazione (a meno che tu non riesca a scrivere una routine in codice nativo, quindi system-dependent, e la usi tramite JNI).Originariamente inviato da sh3va87
Salve, vorrei aprire programmi esterni (non scritti in java) tramite codice java e sapere la grandezza delle finestre occupate da questi programmi. Inoltre mi servirebbe anche la possibilità di chiuderli a mio piacimento.
Come posso fare?
Per aprire un programma ho scoperto 2 metodi:
1) Runtime.getRuntime().exec(comando)
2)Desktop d=Desktop.getDesktop();
d.open(file);
funzionano entrambi, però non ho la possibilità di sapere la grandezza della finestra del programma aperto e inoltre non so come chiuderlo.
Per poter chiudere un programma aperto, invece, basta ricavarne il Process (e non buttarlo via, come fai tu nella prima istruzione) e quindi richiamarne il metodo destroy() (con tutte le cautele del caso, vedi documentazione). Qui un esempio:
Ciao.codice:try { Process p = Runtime.getRuntime().exec( ... ); // Chiudo brutalmente l'applicazione appena avviata: p.destroy(); } catch ( ... ) { ... }![]()



Rispondi quotando