begin process at 2012 02 12 13:24:28
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > ENUMERATION DES FENETRES

ENUMERATION DES FENETRES


 Information sur la source

Note :
3,5 / 10 - par 2 personnes
3,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Niveau :Initié Date de création :10/10/2004 Vu / téléchargé :5 134 / 430

Auteur : boumarsel

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (21)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
une boite de dialogue composée de deux listebox, une affiche la liste des fenetres principales et la deuxiemes les fenetres enfants relatives à chacune d'elles, + deux boutons pour fermer la fenetre selectionnée



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture DESSINER SUR LE BUREAU (TECH : HOOK, GDI, ICÔNE SYSTRAY)
Source avec Zip Source avec une capture 'EXECVERSIONINFO' PERMET D'AFFICHER LES INFORMATIONS DE VERS...
Source avec Zip MEMOIRE (UTILISATION D'UN ACTIVEX DS UNE APPLICATION MFC)
Source avec Zip KILLPROCESSV2 UNE VERSION AMÉLIORÉE DE LA SOURCE 'KILLANYPRO...

 Sources de la même categorie

Source avec Zip WIN32 TLS LENT par dguilmain
Source avec Zip VIDER ELEMENTS DE CORBEILLE WINDOWS7 (WIN64) par BruNews
Source avec Zip Source avec une capture FIND TEXT (WIN64) par BruNews
Source avec Zip DELETE DIRECTORY (WIN64) par BruNews
Source avec Zip ENUM DIRECTORY (WIN64) par BruNews

Commentaires et avis

Commentaire de AlexMAN le 10/10/2004 10:52:48

Bonjour,

Un ptit conseil deja : Crée un projet vide pour ne pas avoir ces "stdafx.xx" paske c chiant (tu peux ps compiler sans) et c moche (je trouve).
Et ensuite une kestion :  Pkoi utiliser tchar.h et donc _tWinMain, TCHAR...Etc ?

Voila, merci

++

Commentaire de AlexMAN le 10/10/2004 10:58:12

Oula, jviens de regarder le code, et j'ai maintenant kelk ptites ramark :

int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
hHeap=GetProcessHeap(); //obtenir le heap de l'application
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = (WNDPROC)WndProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(hInstance, (LPCTSTR)IDI_FENETRES);
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = "FENETRES";
wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);

if(!RegisterClassEx(&wcex))return(0); //enregistrement de la classe de la fenetre
DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, (DLGPROC)Dialog); //chargement de la boite de dialogue
return (0);
}

Pkoi tu initialise une structure WNDCLASSEX ? Tu appelles ici une dialogbox, ca n'a rien a faire ici !

Ensuite, ds ton appel a la fonction DialogBox, Tu peux eviter le cast du 4eme param en prototypant bien ta fonction :

BOOL CALLBACK DlgProc(..)
et non LRESULT...

WM_INITDIALOG doit renvoyer 1, donc TRUE et non pas FALSE.

Bon ben c tt pour le moment.

++

Commentaire de vecchio56 le 10/10/2004 12:22:45 administrateur CS

Salut,

Pour les en-têtes précompilés, c'est vrai que c'est interessant pour les gros projets, mais la on ne peut pas dire que cce soit vraiment le cas.

wcex.lpszClassName = "FENETRES"; ce genre d'affectation se fait a la déclaration, sinon utiliser strcpy

Pourquoitu utilises des new et delete, puisque tu as en heap?

Commentaire de younessfatima le 10/10/2004 13:50:19

hassan c youness je pense que les remarques données par les amis sont profitables.je te remercie pr l'exemple. Ms les amis un peu d'encouragemnet pr Hassan. :)

Commentaire de boumarsel le 10/10/2004 14:53:30

-reponse pour vacchio56: merci pour ta participation et tes conseils, generalement j'utilise les fonctions de heap pour les chaines qui sont longues ou demandent une reallocation frequente, et les fonctions standard comme "new" pour les chaines courtes. c'est pas juste comme methode?
-reponse pour youness: merci mon ami.
-reponse pour alexman: desolé, je perds pas mon temps à lire tes remarques et tes commentaires, l'autre weekend je t'ai ecris un long message pour t'expliquer beaucoup de choses, et critiquer un peu ta participation dans ce site. et par curiosité j'ai parti voir ton profile et j'ai jeté un coup d'oeil sur tes sources et tes reponses aux forums, et tout ce que j'ai fait après c'est effacer mn message sans te l'envoyer, et decider de te negliger.merci pour ta comprhension

Commentaire de AlexMAN le 10/10/2004 14:58:31

whaa, ca me met un coup serieux, ok je comprends, jsui dsl donc de ma participation au site.

Aurevoir

Commentaire de Gendal67 le 16/10/2004 08:58:18

pffff, vous allez encore vous disputez comme ça longtemps ?? Vous etes tous des programmeurs! Nous sommes tous une unité alors aider vous et écouter vous mutuellement bon sang!!! N'agissez pas comme les trois quarts de gens débiles de ce monde!!
....allez, réconsillié vous! Entre parenthèse, moi aussi quand je met un commentaire, on me le "critique", mais ce n'est jamais une mauvaise critique c'est toujours pour essayer que je fasse mieux!! Faut pas s'enerver pour si peu bon sang....le potentiel de chacun est grand, et si on partage ce que l'on sait, on y ai tous gagnant ! :-))

Voila, dsl, 'pouvais pas supporté de voir une querelle sur ce genre de site!! bisous a tous!! :-)

Gendal67, a votre service !

Commentaire de boumarsel le 16/10/2004 15:24:03

tu as tout a fait raison gendal, moi et alexman, nous avons deja regle ce probleme par des messages en pive.
je vois que vecchio n'a pas encore repondu a ma kestion...

Commentaire de younessfatima le 17/10/2004 00:05:33

Enfin on peut dire que tout le monde est satisfait. Le calme régne...buffffff....C cool.
je veux juste poser une question concernant les BDs et VC++? Un tuto ou un exple?

Commentaire de boumarsel le 17/10/2004 07:24:07

vaut mieux poser ta kestion ds le forum, ca te permetra davoir + de reponses

Commentaire de vecchio56 le 17/10/2004 16:37:34 administrateur CS

Désolé j'avais pas vu qu'il y avait une question... En fait je ne sais pas vraiment, mais je pense qu'un new est en fait un HeapAlloc caché, donc autant appeler directement HeapAlloc. Dans tous les cas je pense que ce n'est pas très propre de mélanger des new et des HeapAlloc, de même qu'on ne mélange pas des new et des malloc

Commentaire de boumarsel le 17/10/2004 17:10:16

j'ai lu ds des articles en MSDN que les fonction standard d'allocation (ex:new ) sont plus rapide que les fonctions de heap, qui peuvent causer des problemes si on les appelle tres souvent.je te donnerai les  titres des articles +tard
merci

Commentaire de BruNews le 17/10/2004 18:03:41 administrateur CS

new appelle HeapAlloc().
On peut regrouper en 1 seul appel:
char *p = new char[12];
char *c = (char*) HeapAlloc(hHeap,0, len);

peut devenir en + rapide:
char *p, *c;
char *p =  (char*) HeapAlloc(hHeap,0, len + 12);
c = p + 12;
// algo ici
HeapFree(hHeap, 0, p);

Commentaire de vecchio56 le 17/10/2004 18:32:24 administrateur CS

char *p, *c;
char *p =  (char*) HeapAlloc(hHeap,0, len + 12);
c = p + 12;
// algo ici
HeapFree(hHeap, 0, p);

erreur: p est déja défini dans cette portée!

Commentaire de BruNews le 17/10/2004 18:34:01 administrateur CS

enleve '*' en trop animal !!! si c'est tout ce que t'avais a corriger....

Commentaire de boumarsel le 19/10/2004 22:56:17

je pense que le code est juste sans aucune modification, en plus on peut allouer tout l'espace (len+12) pour 'p' ds des parties du code ou` on ne fait pas referance a` 'c' (et son contenu n'a pas d'importance), sinon on se limite a` la taille 12.
merci

Commentaire de BruNews le 19/10/2004 22:59:19 administrateur CS

c'etait du au 'copier coller', fallait bien sur:

char *p, *c;
p =  (char*) HeapAlloc(hHeap,0, len + 12);
c = p + 12;
// algo ici
HeapFree(hHeap, 0, p);

Commentaire de boumarsel le 20/10/2004 18:36:26

oui biensur, personnellement je peux pas ecrire un message juste pour signalier une telle erreur :)) 'te fache pas vecchio:)'...
j'ai une autre question pour toi brunews,
est ce qu'on peut nous servir des données de la structure MEMORY_BASIC_INFORMATION  (remplie par VirtualQueryEx) pour connaitre la taille de la memoire physique consommée par un processus?
autrement dit est ce que les informations de la memoire virtuelle peuvent nous indiquer la taille de la memoire physique?
je ne peux pas utiliser directement GetProcessMemoryInfo (de psapi.dll) parcequ'elle n'est inclue que ds winNT
merci

Commentaire de BruNews le 20/10/2004 18:48:48 administrateur CS

Utilise GlobalMemoryStatus() pour connaitre la taille de la memoire physique. La valeur sera erronee si tu as un PC avec + de 4 Go de RAM.

Commentaire de boumarsel le 20/10/2004 19:08:59

ma kestion est :
'est ce qu'on peut nous servir des données de la structure MEMORY_BASIC_INFORMATION  (remplie par VirtualQueryEx) pour connaitre la taille de la memoire physique consommée par un processus?'
consommée par un seul processus (exemple: Vstudio.net environ 34Mo) et non pas la taille de la memoire physique du PC.
merci

Commentaire de BruNews le 20/10/2004 19:20:40 administrateur CS

Cette structure sert a explorer ton espace d'adressage, faudraensuite interpreter les donnees.
Regarde dans Richter, il y a des exemples entiers sur l'analyse de la memoire virtuelle.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales