Newsgroup: it.comp.lang.delphi
Titolo: Spostare e ridimensionare un'altra applicazione

Salve a tutti,
vorrei sapere se qualcuno di voi sa se è possibile modificare la locazione e
le dimensioni altre applicazioni in esecuzione.
Mi spiego meglio.
Premendo un pulsante nella mia applicazione Vorrei poter organizzare la
disposizione delle applicazioni già in esecuzione (Es. acrobat reader,
notepad, ecc), ridimensionandole e posizionandole all'interno del desktop in
modo da vederle tutte.
Non so se è possibile interagire con applicazioni che non sono state
lanciate dalla mia applicazione ma recuperando info dal sistema per sapere
chi sta girando e il relativo riferimento.
E' fantascienza ?
Grazie
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Dimenticavo, utilizzo D7.


 Inviato via 
http://arianna.libero.it/usenet/
Modificando lo Z-Order credo si possa fare...ma non l'ho mai fatto...
dai un'occhiata qui:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_CWnd.3a3a.SetWindowPos.asp
 

 modo da vederle tutte.
Tu stai parlando di finestre create da altre applicazioni e si possono
spostare e ridimensionare dalla tua utilizzando le API di Windows per la
gestione delle finestre.  Guarda in particolare EnumWindows e le funzioni
correlate.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Trovato cosi' l'handle puoi usare l'Api MoveWindow(...)
Giorgio 

 Trovato cosi' l'handle puoi usare l'Api MoveWindow(...)
Oppure SetWindowPos che ha sicuramente molte più opzioni...


 Oppure SetWindowPos che ha sicuramente molte più opzioni...
OK, adesso mi rimane il dubbio come ottenere l'Handle delle applicazioni che
stanno girando.
Ho provato a utilizzare EnumWindows e FindWindow.
Nel primo caso ottengo tutti i processi in esecuzione e non solo le
applicazioni aperte (e non so come filtrarli).
Nel secondo caso devo sapere i nomi delle applicazioni e non so ricavarle.
Suggerimenti ?
Grazie per l'aiuto


applicazioni aperte (e non so come filtrarli).
No, no, aspetta, facciamo un po' di chiarezza:
Le API citate lavorano con le FINESTRE, non con i
PROCESSI/APPLICAZIONI.  Bada che sono due concetti diversi.
Sotto Windows esistono oggeti kernel chiamati "processi", istanze di
un'applicazione, i quali possono creare una o più finestre.
EnumWindows serve ad enumerare le finestre ed eventualmente accedere
al processo che le ha generate.  FindWindow serve invece a cercare una
finestra con una determinata classe o con una determinata caption.
Tu che cosa intendi esattamente per "handle delle applicazioni che
stanno girando" ? Io da quel che scrivi ho capito che tu vuoi accedere
a tutte le top-level windows per spostarle e/o ridimensionarle.
A tal proposito, devi usare le API per la gestione delle finestre
suggerite.

 a tutte le top-level windows per spostarle e/o ridimensionarle.
Con le api che mi avete suggerito sono riuscito ad esempio a ridimensionare
notepad e spostarlo dove voglio avendo il suo handle.
Io vorrei recuperare l'handle delle sole applicazioni in esecuzione (per
capire intendo le sole presenti nel tab "applicazioni" nel "Task Manager").
Scasete se non mi esprimo bene, ma e' la prima volta che mi spingo a
utilizzare le API e non ho ancora bene chiari tutti gli aspetti nel
dettagio.
Per completezza cerco di spiegare quello che voglio fare.
Vorrei realizzare un progamma che di normale sta ridotto a icona e nel caso
si prema un tasto (ad esempio F12) controlli le applicazioni aperte e le
sposta ridimensionandole in modo da vederle tutte.
Cliccando su una di queste ripristini tutte le dimensioni e posizioni
precedenti portando in primo piano quella selezionata.
Per questo motivo mi serve sapere l'Handle solo delle applicazioni come
sopra detto.


 capire intendo le sole presenti nel tab "applicazioni" nel "Task Manager").
Quelle che il TM ti mostra sono le finestre top-level.
Ne ottieni la lista usando EnumWindows come ti è stato già detto.
Guarda la documentazione:
http://tinyurl.com/zuggr


 Guarda la documentazione:
Sono riuscito ad ottenere solo le top-level.
Grazie per il prezioso aiuto.
