Newsgroup: it.comp.programmare.win32
Titolo: HWND

ciao a tutti
Ho bisogno di avere l'hwnd di un programma chiamato da me con shellexecute
oppure createprocess
(ditemi voi cosa è meglio usare)
Come posso fare??
grazie

 wrote in message
OFjwLUC...@newsmst.mcis.galactica.it...

Guarda se la funzione FindWindow fa al caso tuo.
Porlock.

 ha scritto nel messaggio
news:OFjwLUC...@newsmst.mcis.galactica.it...

FindWindow() o FindWindowEx()
Ciao
Il Michett@
--


Si ho usato findwindows mi crea problemi e non posso usarla pensa vo a
qualcosa di più diretto ..
createprocess mi restituisce un handle :
typedef struct _PROCESS_INFORMATION { // pi
    HANDLE hProcess;
    HANDLE hThread;
    DWORD dwProcessId;
    DWORD dwThreadId;
} PROCESS_INFORMATION
   " HANDLE hProcess" come posso trasformarlo in HWND??

 wrote in message
41hFMtT...@newsmst.mcis.galactica.it...

Esiste l'API
BOOL EnumThreadWindows(
  DWORD dwThreadId,  // thread identifier
  WNDENUMPROC lpfn,  // callback function
  LPARAM lParam      // application-defined value
);
che ti enumera tutte le finestre non-child del thread specificato da
dwThreadId.
Altrimenti potresti utilizzare l'API EnumWindows con cui enumeri tutte l
finestre top-level che hai sullo schermo e per ogni HWND che ti restituisce
vedere a quale processo e thread appartiene con l'API
GetWindowThreadProcessId.
Spero di esserti stato d'aiuto.
Porlock.


si ma EnumWindows fa la stessa cosa di findwindows cioè cerca un hwnd
tramite nome della caption della finestra il che non è proprio quello che
cerco .....
mi servirebbe  trovare l'hwnd dall'handle
cmq grazie


mmmhhh .... non mi risulta che EnumWindows si comporti come dici tu ....
Ti riporto parte della documentazione dell'API.
EnumWindows
The EnumWindows function enumerates all top-level windows on the screen by
passing the handle to each window, in turn, to an application-defined
callback function. EnumWindows continues until the last top-level window is
enumerated or the callback function returns FALSE.
BOOL EnumWindows(
  WNDENUMPROC lpEnumFunc,  // callback function
  LPARAM lParam            // application-defined value
);
Parameters
lpEnumFunc
[in] Pointer to an application-defined callback function. For more
information, see EnumWindowsProc.
lParam
[in] Specifies an application-defined value to be passed to the callback
function.
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error
information, call GetLastError.
If EnumWindowsProc returns zero, the return value is also zero.
Remarks
The EnumWindows function does not enumerate child windows, with the
exception of a few top-level windows owned by the system that have the
WS_CHILD style.
This function is more reliable than calling the GetWindow function in a
loop. An application that calls GetWindow to perform this task risks being
caught in an infinite loop or referencing a handle to a window that has been
destroyed.
Porlock.

 Ti riporto parte della documentazione dell'API.
si si è vero ma cercavo un modo più pulito se dovessi fare azioni
particolari mentre il sistema apre l'applicazione non riuscirei più a
trovare quello che cerco invece, ricavando direttamente in qualche modo
l'hwnd sicuramente il codice risulterebbe più pulito(anche perchè non ho la
caption della finestra)...
però sto valutando tutte le idee e chiaramente la tua è possibile .......
tnx
            ciao ciao


--
Dos
minic...@cheerful.com