Originariamente inviato da sh3va87
però non ho la possibilità di sapere la grandezza della finestra del programma aperto
In generale no, non lo puoi sapere. Una applicazione può fare quello che vuole in termini di finestre: quante aprirne, dove posizionarle, con quali dimensioni, ecc....

E nel framework di Java non c'è una API apposita per avere informazioni sulle finestre di altre applicazioni esterne. L'unica sarebbe sfruttare le API "native" del S.O. per ottenere queste informazioni. Ma la cosa diventerebbe molto system-dependent e bisogna comunque "sapere" qualcosa a priori del processo lanciato.

Originariamente inviato da sh3va87
inoltre non so come chiuderlo.
La exec() restituisce un Process, che ha un metodo destroy(). Ma nota che questo destroy causa una terminazione "brutale" quindi generalmente è da prendere/usare "con le pinze". Il processo, in base a cosa fa o ha fatto, potrebbe non completare/aggiornare/salvare correttamente certe cose se viene terminato in modo a lui imprevisto.

Pertanto anche per la terminazione di un processo bisogna andare cauti. Se può andare bene destroy() o no dipende da cosa fa il processo.