c'est un programme qui cherche a cacher et a décacher un programme comme le nom du titre l'indique. il permet également de récuperer le chemin du module selectionner ("ex: c:\windows\prog.exe").
Je suis toujours a perfectionner ce programme car, j'aimerai m'en servir pour un autres programme.
ce petit programme permet de voir, coimment gérer un cursor
les fenetres=> EnumWindows, EnumWindowsChild
Source / Exemple :
quand un élement est selectionner, j'aimerai voir si cet element est une windows , ou un objet avec un style WS_CHILD
je fais donc
[green]
while (iResult)
{
if(GetAsyncKeyState(VK_LBUTTON) && GetAsyncKeyState(VK_LBUTTON)) //<<permet de recuple click gauche de la sourie
{
GetCursorPos(&pCursor);
iResult = 0;
hWindow = WindowFromPoint(pCursor);
GetWindowText(hWindow, sTitle, 400);
GetClassName(hWindow, sClass, 400);
}
}
strcpy(MainsClass,sClass); //<<<<en global
HwndDest=FindWindow(sClass,sTitle);
HwndCatchFromPoint=hWindow;
/green
maintenant que j'ai mon HWND d'un element selectionner, je verif si c une windows en fonction du titre et du nom de la class
if (IsWindow(HwndDest)==0)
{....}
si c égale a 0 c ke cela n'en est pas une donc
c'est un objet, button, listview,etc.... il appartient donc a une fenetre parente GetParent ne suffit pas toujours, j'ai testé
pour cela je fais un EnumWindows dans le but , k'il enumere toutes les fenetres, et j'enumere les enfants en meme temps:
ca donne ca:
[green]
EnumWindows(EnumWindowsProc,0);
....
....
BOOL CALLBACK EnumWindowsProcChild(HWND hwnd,LPARAM lParam)
{
char szClass[128];
GetClassName(hwnd, szClass, 128);
if (strcmp(MainsClass,szClass)==0){
if(HwndCatchFromPoint==hwnd)
{
HwndTest=hwnd ;
}
}
return true;
}
BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)
{
char szClass[128];
GetClassName(hwnd, szClass, 128);
EnumChildWindows(hwnd,EnumWindowsProcChild,0);
if(IsChild(hwnd,HwndTest)!=0){
if (IsWindow(hwnd)!=0)
{
if (IsWindowVisible(hwnd)!=0)
{
HwndDest=hwnd;
ShowWindow(HwndDest,SW_HIDE);
}
}
}
return true;
}
/green
voila c tout
Conclusion :
merci de me prevenir pour les erreurs, car je suis dessus encore et c pas totalement fini, merci
pour le moment je cherche a ce que l'on recuper le parent quand on click sur un menu,ou une barre d'outil, etc....
/////////////////////////////UPDATE du 22/07/04//////////////////////////////////////////////////
voila c fais rajout juste de if (IsWindow(HwndDest)==0 || (GetWindowLong(HwndCatchFromPoint,GWL_STYLE) & WS_CHILDWINDOW) ) pour le enumwindow etc ca marche pour n'importe kel élement d'une fenetre
ce qu'il me reste a faire, pour ceux que cela intéresse c mettre dans le system tray les élements selectionner
/////////////////////////////UPDATE du 22/07/04//////////////////////////////////////////////////
Option de mettre dans le system tray
reste a faire c verif s'il a deja une icone dans le system tray si oui le virer, mais ca a mon avis c galere, je le ferai plus tard
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.