Oppure

Loading
10/07/10 1:47
NickoMaiden
si può ottenere l'hwnd di un exe aperto con ShellExecute?

di solito usavo GetForegroundWindow con SW_SHOWNORMAL però ora mi serve usare SW_HIDE quindi non mi funziona... idee?
aaa
10/07/10 7:13
Un processo può creare n finestre.

Non esiste quindi il concetto di hwnd associato ad un processo (non esiste il concetto di "finestra principale";).

Dovrai creare il processo con la CreateProcess (e non con la ShellExecute) e poi "enumerare" tutte le finestre con la EnumWindows utilizzando le informazioni che questa API ti fornirà con la API GetWindowThreadProcessID per ottenere gli hwnd associati.
10/07/10 12:19
NickoMaiden
grazie per la dritta sull' hwnd :)

se creo con CreateProcess non posso usare sw_hide ed è lo stesso di niente....

msdn.microsoft.com/en-us/library/…
ho provato con CREATE_NO_WINDOW ma è la stessa cosa che mettere null (non ho capito mil perchè ancora).
se devo crearla per poi nasconderla uso ShellExecute a sto punto...
usando ShellExecute non ci sono modi?


su internet parlano di questo modo che dovrebbe essere funzionante ( anche che non ho capito cosa fa):


//Start code

HWND hWnd;
HWND winHandle;

hWnd = this->GetSafeHwnd();

HINSTANCE hInst = ::ShellExecute(hWnd, NULL, _T("http://www.experts-exchange.com"), NULL, NULL, SW_SHOWNORMAL);

if( winHandle = ::FindWindow(NULL, NULL) )
{
   do{
      if( !::GetParent(winHandle) )
               {
                    if( (long)hInst == ::GetWindowLong(winHandle,                                                                              GWL_HINSTANCE) )
                    break;
               }
      }while( winHandle = ::GetWindow(winHandle, GW_HWNDNEXT) );
}

//End of code





a parte che quando compilo mi da errore su hWnd = this->GetSafeHwnd(); poi non riesco a farlo funzionare..
aaa
10/07/10 12:19
NickoMaiden
mi è partito il doppio post....
(potete eliminare questo)
Ultima modifica effettuata da NickoMaiden 10/07/10 13:34
aaa
10/07/10 13:08
Postato originariamente da NickoMaiden:

se creo con CreateProcess non posso usare sw_hide ed è lo stesso di niente....

Come no ... STARTUPINFO ... leggi meglio.
10/07/10 13:40
NickoMaiden
wShowWindow...non ti sfugge niente, come al solito eh??
grazie tante,ora mi metto un po e vedo quello che riesco a fare:D
aaa