Hide et unhide a programme+ system tray aux choix!!!!

Description

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

Codes Sources

A voir également

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.