Recuperare l'handler di una finestra

giovedì 22 maggio 2008 - 16.11

nibe Profilo | Newbie

Ciao a tutti,
ho uno stupido problema che mi sta facendo impazzire.
Ho un'applicazione che una volta lanciata apre 3 finestre.
La mia applicazione deve prendere una finestra delle 3 sopra citate e dargli il focus
Con il codice sotto riportato recupero l'handler del processo tramite il nome, solo che quando forzo il focus, mi va sempre su una finestra, immagino la principale e non su quella che mi interessa.

Process[] processes = Process.GetProcessesByName("fp");
if (processes.Length != 0)
{
IntPtr pFoundWindow = processes[0].MainWindowHandle;
SetForegroundWindow(pFoundWindow);
}

grazie mille

nibe

Brainkiller Profilo | Guru

>Ciao a tutti,
>ho uno stupido problema che mi sta facendo impazzire.
>Ho un'applicazione che una volta lanciata apre 3 finestre.
>La mia applicazione deve prendere una finestra delle 3 sopra
>citate e dargli il focus

Quando fai lo Spawn dalla finestra principale delle finestre figlie non puoi crearti una variabile privata di classe in cui salvare il riferimento alle varie finestre figlie ? In questo modo puoi facilmente dargli il focus quando necessario evitando di fare tutto questo giro di enumerazione processi, enumerazione finestre, ecc.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

nibe Profilo | Newbie

Ciao,
grazie della risposta, ma il fatto è che l'applicazione che lancia le 3 finestre non è fatta da me.
Io ho solo un'applicazione in C# che sta in background e che deve dare il focus a una delle 3 finestre

grazie ancora

nibe
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5