C'è un modo per avere un processo creato da CreateProcess aperto all'interno di un'altra finestra?

StackOverflow https://stackoverflow.com/questions/3775229

Domanda

Voglio essere in grado di aprire un'applicazione GUI utilizzando CreateProcess in un processo principale e avere la visualizzazione grafica in una finestra creo dall'interno del processo principale. Qualcuno sa come raggiungere questo obiettivo? Grazie!

È stato utile?

Soluzione

Se si è in controllo di entrambe le applicazioni allora sì.

Questo è il modo visualizzazione screen saver nel pannello di controllo screen saver - il pannello di controllo passava davanti alla finestra di dialogo nella riga di comando, e il file .scr - che è solo un semplice exe - crea la sua finestra come un bambino usando lo specifico hWnd come suo genitore.

Acquisizione di una finestra di primo livello scritto in precedenza e costringendolo a esistere all'interno della propria struttura non è però ben supportato.

Anche in questo caso, si tratta di qualcosa che si può easilly provare: ho scritto un'applicazione di test che ha creato una finestra cornice vuota, fatto un FindWindow per le copie di Blocco note e reparented la finestra di blocco note per essere un figlio del mio telaio

.

Così funziona: in questo scenario semplice, almeno, ma non v'è alcuna garanzia: le applicazioni più complesse che modificare i propri stili della struttura potrebbe benissimo rompere, inoltre avere una finestra bambino e finestra padre sui thread diversi introduce la possibilità di deadlock.

Altri suggerimenti

No, non si può fare questo.

Una cosa che lavoro potrebbe ... Si potrebbe iniziare il processo, però, e quindi utilizzando l'handle della finestra applicare una serie di modifiche alla finestra per togliere il telaio. Poi si potrebbe spostarlo nella posizione di qualche altro controllo di posizionamento nella finestra e quando si hanno gli eventi spostare / ridimensionare anche di ridimensionare questa finestra secondaria.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top