Nhera Le 17/01/2006 à 13:54 Quelle methode utilisez-vous pour lancer un programme (une ligne de commande plutot) et recuperer le hwnd de la fenetre que ca ouvre (pour pouvoir le fermer plus tard) (sachant que findwindow spa top parce que je peux avoir plusieurs fenetres avec le meme nom mais je ne veux fermer que celle que j'ai lancée) ?
Bin si tu veux lister les fenetres actives a un instant T via EnumWindows (si le nom de ta fenetre est inconnu).
Nhera Le 17/01/2006 à 16:16 ouais mais je ne peux pas me base sur le nom de la fenetre vu qu'il peut yen avoir plusieurs avec le meme nom et que je ne veux toucher qu'a la fenetre que je viens de lancer
Link Le 18/01/2006 à 09:56 EnumWindows(), et tu fais un GetWindowThreadProcessId() pour chaque fenêtre trouvée.
Puisque le ProcessID est retourné par CreateProcess(), tu devrais pouvoir savoir assez facilement quelle fenêtre appartient au processus lancé...
(SAUF si c'est un processus console: La fenêtre console n'appartient pas au processus en question. Pour trouver la fenêtre d'un processus console, c'est beaucoup plus dur, et même pratiquement impossible si ce n'est pas un processus que le programme lance lui-même)

Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.
Nhera Le 18/01/2006 à 11:47 adId);
}j'ai fait ca BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM param) {
DWORD id = GetWindowThreadProcessId(hwnd, NULL);
if (id == (DWORD) param)
{
MessageBox(0, "blabla", "Error", MB_ICONERROR | MB_OK);
ShowWindow(hwnd, SW_HIDE);
return false;
}
return true;
}
void Projet1Frm::WxButton1Click(wxCommandEvent& event)
{
STARTUPINFO si;
PROCESS_INFORMATION pi;
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
ZeroMemory( &pi, sizeof(pi) );
if( !CreateProcess( NULL,
"\"c:\program files\videolan\VLC\vlc.exe\" udp://@224.3.2.1:1234 :demux=dump :demuxdump-file=c:\fichier.mpeg",
NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi ))
return;
EnumWindows(&EnumWindowsProc, pi.dwThre
et ya pas la messagebox qui s'affiche, ni la fenetre qui se cache, meme chose en remplacant le dwThreadId avec dwProcessId ...
Nhera Le 18/01/2006 à 16:26 Bon je suis repassé a C#.NET ca marche tellement mieux