Librairie de nombreuses fonctions pour agir sur les fenetres, processus et threads

Soyez le premier à donner votre avis sur cette source.

Vue 12 925 fois - Téléchargée 3 197 fois

Description

Bonjour à tous,

voilà je vous présente une source qui m'est très très utile en ce qui me concerne... Car pour tous mes progs qui nécessitent d'agir sur les fenetres, process ou threads, plutot que de recoder les fonctions à chaque fois, je me suis lancé dans l'écriture d'une librairie qui rassemblerait un peu toutes les fonctions utiles.
Comme ça quand je commence un projet, je n'ai qu'a ajouter les modules, et rien besoin de coder.

Un truc qui pourrait etre bien, c'est que chacun y amène sa participation pour pouvoir arriver au final à des fonctions qui soient completement fiables et exploitables.

IMPORTANT : Le but de cette source est de pouvoir se détacher de la syntaxe (ennuyeuse et compliquée) des API, qui nécessitent plein de déclarations et tout. C'est pour cela que vous pouvez trouver certaines fonctions de 3 lignes qui se contentent juste d'appeler une api : ceci est voulu, c'est pour se "détacher" des api et avoir des noms de fonctions plus pratiques.
Le nom de chaque fonction a un préfixe de 2 lettre : "m" pour module et "w"/"p"/"t"/"d" pour window, process, thread, divers (ceci afin de mieux s'y retrouver dans le code)

Note : je n'ai développé cela que sous XP, donc certaines fonctions ne marcheront peut etre pas sous 9x

Donc je me suis dit que ça pourrait peut etre vous servir, je vous met la liste de toutes les fonctions :

Fenetres :
mwListWindows : fait la liste des fenetres ouvertes sur le système
mwListTasks : fait la liste des taches ouvertes sur le système
mwCloseWindow : Fermer une fenetre
mwEnableCloseButton, mwDisableCloseButton : Activer/désactiver le bouton fermer d'une fenetre
mwEnableTransparency, mwChangeTransparency, mwDisableTransparency : gère la transparence des fenetres
mwEnableWindow, mwDisableWindow : Equivaut à Form.Enabled=True/False
mwSetWindowOnTop, mwDisableWindowOnTop : activer/desactiver la fenetre par dessus toutes les autres
mwFadeShow, mwFadeHide : fait un fondu d'apparition/disparition d'une fenetre (cf une de mes sources pour + d'infos)
mwFindWindow : retrouver une fenetre a partir d'une partie de son titre
mwGetParent : renvoie la fenetre parente
mwGetWindowCaption : renvoie le titre de la fenetre
mwGetWindowClass : renvoie la classe de la fenetre
mwGetWindowIcon : renvoie l'icone de la fenetre (celui qui apparait dans la barre des taches)
mwGetWindowSmallIcon : renvoie le petit icone de la fenetre (celui qui apparait dans la barre de titre)
mwShowWindow, mwHideWindow : montrer/cacher une fenetre
mwIsTask : renvoie TRUE si la fenetre est une tache (voir dans le code pour la définition d'une tache)
mwIsWindowVisible : savoir si une fenetre est visible
mwNbWindows, mwNbTasks : renvoie le nombre de fenetres/taches ouvertes
mwRefreshWindow : rafraichir l'affichage de la fenetre
mwRenameWindow : renommer une fenetre
mwSetFocus : donne le focus à une fenetre

Processus :
mpListProcess : fait la liste des ID des processus ouverts sur le système
mpListProcessInfo : utilise une autre méthode : renvoie les ID des processus + des infos dessus
mpFindProcess : Retrouve un processus à partir de son nom
mpGetParentProcess : Renvoie l'id du processus parent (celui qui l'a lancé)
mpGetProcessFileName : Renvoie le chemin complet du processus
mpGetProcessFromHWnd : Retrouve le processus qui a ouvert la fenetre passée en parametre
mpGetProcessMemorySize : La taille mémoire RAM utilisée par le processus
mpGetProcessName : Le nom du processus
mpGetProcessPageFileMemorySize : La taille mémoire virtuelle occupée par le processus
mpGetProcessPriority : La priorité du processus
mpGetProcessOwner : Quel utilisateur a lancé ce processus
mpIsProcess : si le process est toujours ouvert ou pas (s'il existe)
mpKillProcess : Tuer un processus
mpNBProcess : renvoie le nombre de processus ouverts
mpSetProcessPriority : permet de définir la priorité du processus
mpListWindowsFromProcess : Liste les fenetres appartenant à un processus

Threads :
mtListThread : Fait la liste des threads s'executants sur le système
mtGetThreadListFromProcess : La liste des threads d'un process
mtSuspendThread : Suspend un thread
mtResumeThread : Reprend un thread suspendu

Divers (sert pour les fonctions ci dessus) :
mdGetUserNameFromUserID : Renvoie le nom d'utilisateur correpondant à un ID d'utilisateur

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
5
Date d'inscription
mardi 7 août 2007
Statut
Membre
Dernière intervention
8 mai 2008

magnifique source !!!

je crain cependant de pas avoir le niveau pour encore bien l'assimiler et l'utiliser. enfin, comme cela a déja été dit, c'est en s'arrachant les cheveux sur des codes obscure que la lumiere finit par eclairer le tout (je sais, a ce niveau, c'est quasi-mystique).

bon, blague mise a part :
vous croyez que ca serait possible d'utiliser ces fonctions pour ellaborer un logiciel de deploiement de setup ?

en fait, j'aimerais partir de cette idée (!!! auto-it !!!) : http://www.supinfo-projects.com/fr/2006/autoit_2006/3/ qui consiste, globalement, a "scripter" une installation de logiciel.
a partir de cette idée, du constat que auto-it et les aides en fr complete et interressante ne sont pas légion, et que pour l'installation, certaines fonctions plus poussé peuvent etre interressante : fonction logique, base de registre, etc, etc, etc, j'en suis venu a la conclusion que le mieu serait de faire la meme chose, mais sous VB (logique, quoi).
il y aurait : un "installeur" capable de lire des "script" (en fait de simple texte dans lequel figure les opération a faire sur les fenetre et les fichiers), un logiciel qui serait capable de sequenser l'utilisation de plusieurs script et de definir d'eventuel variable d'exploitation (adresse d'installation, options, etc ...) et enfin, IDEALEMENT une derniere capable de "snifer" une installation en court et d'enregistrer le script correspondant.

dans ce sens, est ce que ce code correspond a mon "cahier des charges" ?
est ce que la suggestion de eldim est bonne (sur les send message) pour l'utilisation que je veu en faire, et est il possible dans ce cas d'integrer ces fonctions a peu pret facilement ? (ou alors devrais je coder ca directement dans le corps du programme, et non l'integrer dans les modules)

enfin, voila. a priori, je vous rassure de suite, je suis pas cinglé, je me rend compte que OUI cette source correspond, au moins en partie, et pour d'autre trop pour moi ^^, mais si vous avez des precision a apporter sur l'utilisation de ce code dans mon optique ... je vais pas "cracher" sur de bons conseils avisé, non ?

petite idée a la noix d'ajout : gestion des "popup" ? en tenant compte de l'anulation de ces dernieres par un "clic" a l'exterieur (source : http://www.vbfrance.com/codes/POPUPMENU-PERTE-FOCUS_26106.aspx).
ca fait partie de la gestion des fenetres, ca serait peut etre "de circonstance"... comme ca peu etre jugé completement "hors sujet" ^^


encore bravo (je m'acharne a comprendre, mais au moins on peu pas dire que ca soit pas commenté) et un chiti 10.

ps : ton code et vista ?
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
voir frmExample...

Private Sub Form_Load()
Dim tabProcessID() As Long
Dim tabHWnd() As Long
Dim T As Long
' Liste les processus
mpListProcess tabProcessID()
lstProcess.Clear
For T = LBound(tabProcessID) To UBound(tabProcessID)
lstProcess.AddItem mpGetProcessName(tabProcessID(T))
Next T
' Liste les fenetres
mwListWindows tabHWnd()
lstWindows.Clear
For T = LBound(tabHWnd) To UBound(tabHWnd)
If mwIsWindowVisible(tabHWnd(T)) Then
lstWindows.AddItem mwGetWindowCaption(tabHWnd(T))
End If
Next T
' Liste les fenetres
mwListTasks tabHWnd()
lstTasks.Clear
For T = LBound(tabHWnd) To UBound(tabHWnd)
lstTasks.AddItem mwGetWindowCaption(tabHWnd(T))
Next T
End Sub
Messages postés
1
Date d'inscription
dimanche 6 avril 2008
Statut
Membre
Dernière intervention
7 avril 2008

SLT!!!
Moi je comprend rien à ce que vous dites, cela dit si quelqu'un pouvait me dire comment ça marche, je lui serais plus que reconnaissant...

Merci
Messages postés
1
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
20 décembre 2007

Merci beaucoup pour ces sources.

Elles me sont très utiles.
Messages postés
956
Date d'inscription
lundi 30 mai 2005
Statut
Membre
Dernière intervention
21 août 2014
1
très bonne idée comme projet et bon courage
Afficher les 36 commentaires

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.