pilotage d'une fenêtre à travers c#
Bjr,
dans le cadre de mon projet, je voulais pouvoir installer automatiquement une application donc lancer des .exe,.msi etc dans des emplacements différents.
Le problème c'est que j'arrive à lancer l'installation à travers mon code c#(j'ai utilisé la classe , mais je dois cacher leurs interfaces à l'utilisateur, et mon application doit garantir l'installation (piloter ces interfaces, l'appui sur les boutons la saisie des champs requise pur l'installation...) donc si vous pouvez m'aider pour pouvoir piloter une fenêtre, différente que celle de mon application, à travers mon code c#.
merci,
FindWindowEx ne marche pas.
En effet j'ai essayé l'exemple de la calculatrice que vous m'avez proposé, il marche avec succès.
lorsque je voulais l'adapter à mon besoin, la récupération du handle d'un button "suivant" dans la mainwindow d'un processus, j'ai un problème avec la fonction FindwindowEX, en effet cette fonction ne retourne pas le handle du button, malgré que le handle de la minwindow passé en argument est juste et je l'ai vérifié avec l'outil spy++, ainsi que le nom du button "suivant" existe, j'ai essayé de récupérer l'erreur avec Marshal.GetLastWin32Error() , elle retourne tjrs 1008.
si vous pouvez m'aider je serais reconnaissant.
Code:
1 2 3 4 5 6 7 8 9
|
DllImport("user32.dll" , CharSet = CharSet.Auto)]
public static extern IntPtr FindWindowEx(IntPtr parentHandle, IntPtr childAfter, string className, string windowTitle);
// ....
IntPtr hwnd = proc.MainWindowHandle;
Console.WriteLine("Main window Handle : " + hwnd.ToString());
//Get a handle for the "suivant" button
IntPtr hwndChild = FindWindowEx((IntPtr)hwnd, IntPtr.Zero, "Button", "suivant" );
int error = Marshal.GetLastWin32Error() ; |