begin process at 2010 02 10 09:11:11
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > API POUR DÉGRISER LA CROIX FERMER DE N'IMPORTE QUELLE FENÊTRE (LA RÉACTIVER EN FAIT) / ET PUIS AUSSI POUR LA GRISER

API POUR DÉGRISER LA CROIX FERMER DE N'IMPORTE QUELLE FENÊTRE (LA RÉACTIVER EN FAIT) / ET PUIS AUSSI POUR LA GRISER


 Information sur la source

Note :
7,5 / 10 - par 6 personnes
7,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Classé sous :dégriser, griser, fermer, croix, fenetres Niveau :Initié Date de création :06/02/2004 Date de mise à jour :03/03/2008 10:04:46 Vu :6 908

Auteur : MadM@tt

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


 Description

J'avais trouvé pas mal de sources pour griser la croix fermer mais aucune pour la dégriser. Donc j'ai essayé pas mal de combinaisons (bien 50 au moins) avec différentes API et puis ça a enfin marché ! Ouf ! (en plus avec un truc tout con j'avai les boules lol)

donc moi j'ai testé sur les fenêtres que j'avai grisé auparavant, ça marche et puis aussi sur Nero en pleine gravure, et ça marche aussi !
Donc dites moi si chez vous ça marche pas mais normalement aucun problème.

MadMatt

Source

  • ' Je met un petit exemple avant (tout con mais bon) :
  • Private Sub form_load ()
  • DesactiveCroix Me.Hwnd ' Désactive la croix de la fenêtre actuelle
  • ActiveCroix Me.Hwnd ' Réactive
  • ' Je précise qu'il faut envoyer dans la fonction le handle de la fenêtre à manipuler.
  • ' Pour trouver le handle d'une form d'un projet Visual Basic il faut utiliser ".Hwnd" après le nom de la form
  • End Sub
  • ' METTEZ TOUT çA DANS UN MODULE ET UTILISEZ LES FONCTIONS
  • ' Déclare les API
  • ' pour dégriser ou griser un item du menu sytème d'une fenêtre
  • Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long
  • Public Declare Function GetSystemMenu Lib "user32" (ByVal HWnd As Long, ByVal bRevert As Long) As Long
  • Public Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
  • Public Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
  • Public Declare Function DrawMenuBar Lib "user32" (ByVal HWnd As Long) As Long
  • Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
  • Public Const MF_BYPOSITION = &H400&
  • Public Const MF_REMOVE = &H1000&
  • Public Const SC_CLOSE = &HF060
  • ' Fonctions :
  • ' Réactive la croix fermer
  • Public Function ActiveCroix(ByVal HWnd As Long) ' il faut lui préciser le handle de la fenêtre
  • On Error Resume Next
  • ' ici je dégrise grâce à true qui remet le menu à zéro
  • hMenu = GetSystemMenu(HWnd, True)
  • DrawMenuBar HWnd
  • End Function
  • ' Désactive la croix fermer
  • Public Function DesactiveCroix(ByVal HWnd As Long)
  • On Error Resume Next
  • Dim hMenu As Long
  • hMenu = GetSystemMenu(HWnd, 0)
  • RemoveMenu hMenu, SC_CLOSE, MF_BYCOMMAND
  • DrawMenuBar HWnd
  • End Function
' Je met un petit exemple avant (tout con mais bon) :
Private Sub form_load ()
DesactiveCroix Me.Hwnd  ' Désactive la croix de la fenêtre actuelle
ActiveCroix Me.Hwnd       ' Réactive
' Je précise qu'il faut envoyer dans la fonction le handle de la fenêtre à manipuler.
' Pour trouver le handle d'une form d'un projet Visual Basic il faut utiliser ".Hwnd" après le nom de la form
End Sub


' METTEZ TOUT çA DANS UN MODULE ET UTILISEZ LES FONCTIONS
' Déclare les API
' pour dégriser ou griser un item du menu sytème d'une fenêtre
Declare Function EnableMenuItem Lib "user32" (ByVal hMenu As Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long
Public Declare Function GetSystemMenu Lib "user32" (ByVal HWnd As Long, ByVal bRevert As Long) As Long
Public Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long
Public Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Public Declare Function DrawMenuBar Lib "user32" (ByVal HWnd As Long) As Long
Declare Function GetMenuItemID Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long
Public Const MF_BYPOSITION = &H400&
Public Const MF_REMOVE = &H1000&
Public Const SC_CLOSE = &HF060


' Fonctions :
' Réactive la croix fermer
Public Function ActiveCroix(ByVal HWnd As Long) ' il faut lui préciser le handle de la fenêtre
    On Error Resume Next
    ' ici je dégrise grâce à true qui remet le menu à zéro
    hMenu = GetSystemMenu(HWnd, True)
    DrawMenuBar HWnd
End Function

' Désactive la croix fermer
Public Function DesactiveCroix(ByVal HWnd As Long)
     On Error Resume Next
     Dim hMenu As Long
     hMenu = GetSystemMenu(HWnd, 0)
     RemoveMenu hMenu, SC_CLOSE, MF_BYCOMMAND
     DrawMenuBar HWnd
End Function

 Conclusion

voilà, à vous les commentaires et la note !
;-)

PS : pour la fonction qui désactive la croix elle vient du site mais je l'ai mise pour pouvoir tester chez vous.


 Historique

23 novembre 2005 20:29:06 :
Ajout des mots clés
03 mars 2008 10:04:46 :
Optimisation par Renfield

 Sources du même auteur

Source avec Zip COMMUNICATION INTER-PROCESSUS (IPC)
Source avec Zip OPÉRATIONS SUR LES CHAINES DE CARACTÈRE OPTIMISÉES ET ÉTENDU...
Source avec Zip Source avec une capture FISHTANK - SCREENSAVER INTERACTIF : AQUARIUM AVEC POISSONS V...
Source avec Zip Source avec une capture RÉCUPÉRER LA TEMPÉRATURE DES DISQUES DURS
Source avec Zip Source avec une capture WIN++ OPTIONS AVANCÉES SUR LES FENETRES ET PROCESSUS WINDOWS...

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) FAIRE LA DIFFÉRENCE ENTRE UNE ADRESSE EMAIL QUI EXISTE D'UNE... par lesinfosdugeek
ENVOYER UN MESSAGE SUR SON COMPTE TWITTER par lesinfosdugeek
Source avec Zip Source avec une capture TROUVER LES CLÉS DE REGISTRE QUI CHANGENT par Flocreate
Source avec Zip IP_PUBLIQUE_INTERNETGETCONNECTEDSTATE par marco62118
Source avec Zip TOUTES LES RÉSOLUTIONS D'ÉCRAN ET TAILLE MAXI DE LA FORM AUD... par marco62118

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) GRISER L'IMAGE, CONVERSION VERS LE NIVEAU DE GRIS par boutemine
Source .NET (Dotnet) FERMER EXCEL CORRECTEMENT ET SIMPLEMENT par Kornebrume
Source avec Zip Source .NET (Dotnet) CROSS GAME par rami2533
Source .NET (Dotnet) FERMER CORRECTEMENT EXCEL - KILL EXCEL par gregory__forel
Source avec Zip MANIPULER UNE USERFORM par LEMLEM

Commentaires et avis

Commentaire de MadM@tt le 06/02/2004 21:17:13

Désolé par contre je m'en rend compte j'ai mis plein d'api en trop :
j'ai essayé plein de combinaison comme je l'ai dit donc il y a toujours les api qui m'avaient servi à faire mes tests

voilà
@ +

Commentaire de FearBlue le 06/02/2004 23:17:14

Sympa et bien pratique
Je me suis tjrs demandé comment on pouvait faire ca !!!
Aller 7/10

Commentaire de ld40 le 07/02/2004 23:48:11

t'aurais pas la même chose pour les boutons réduire et restaurer?

;-)

Commentaire de MadM@tt le 08/02/2004 21:38:20

Salut,
pour Id40 je pense que peut être il réactive tous les boutons en fait, faudrait tester. c'est vrai que c'est à voir.

Sinon merci FearBlue ;-)

@ +

Commentaire de windob le 10/02/2004 23:30:28

tres bon code mais on ne peu pas griser ou degriser une fenetre d'une autre appli ?

Commentaire de MadM@tt le 11/02/2004 23:26:58

Bah bien sur que si c'est justement ça l'intérêt !
Dans la fonction tu lui envoie le handle de la fenêtre à cacher donc si tu veut dégriser la croix de la fenêtre d'une autre appli il faut récupérer son handle et l'envoyer dans la fonction.
Je l'ai dit en haut j'ai testé avec Nero en pleine gravure et ça a marché.

Après c'est sur fo faire tout le code pour récupérer le handle de la fenêtre sur laquelle tu veut agir, mais bon...
;-)

Commentaire de windob le 11/02/2004 23:29:28

heu....

juste comme ça c'est quoi le handle ???

Commentaire de jannoman le 16/02/2004 07:59:43

le handle : c'est un numéro unique que Windows attribue à chaque objet pour les identifier. Tu peux le récupérer par plusieurs manières et il y a un bon ex sur le site (cf http://www.vbfrance.com/article.aspx?ID=8815)

Commentaire de MadM@tt le 21/02/2004 17:52:13

et pis une fois que t'a le handle de ce que tu veu (fenêtre, menu de fenêtre, bouton, picturebox...) tu peut faire plein de trucs sur ton objet... cool non ?

Commentaire de adamo901 le 29/12/2005 14:04:56

Même question que LD40
Y aurait-il pas la même chose pour les boutons réduire et restaurer?

;-)

Commentaire de MadM@tt le 29/12/2005 16:57:15

Euh je dis ça de mémoire, mais dans les propriétés d'une form y'a pas des options pour activer/desactiver les boutosn réduire et restaurer ?
(PS : ça fai bien longtemps que je n'ai pas vu d'IDE VB donc m'en voulez pas si je me trompe ;)

Commentaire de adamo901 le 30/12/2005 10:19:28

C'est bon.
J'ai utilisé ton code sans mon application en cherchant toujours la solution pour les boutons réduire et restaurer.

Je te note 7/10
Bon courage!
;)

Commentaire de soldier8514 le 01/07/2006 19:20:35

ouai c klr _ tu déclares 6 fonctions et t'en utilises 3 ...

ormis çà c un code très utile _ de plus c compatible à partir de windows 3.1 _ bravo à toi _ 10/10

Commentaire de MadM@tt le 01/07/2006 23:56:01

Merci, c'est vrai qu'il y a des déclarations en trop, mais bon je compte sur vous le code fait à peine 20 lignes elles sont pas difficiles à supprimer lol ;-) (rahhh la flème quel fléau, j'arrive pas à m'en défaire...)

Commentaire de yyyx le 12/11/2006 16:30:35

Bonjours,
Existe-t-il un code permettant non pas de griser la croix mais carrément de la faire disparaitre ??

Commentaire de MadM@tt le 12/11/2006 16:33:24

La faire disparaitre ??? oula la je ne crois pas, je n'ai jamais vu quelque chose de tel en tout cas. Enfin c'est peut etre possible mais je n'ai aucune idée

Commentaire de ld40 le 12/11/2006 20:58:53

il y a cette astuve vba que je n'ai pas testée
http://www.codyx.org/snippet_supprimer-croix-userform-vba_257.aspx

Commentaire de ld40 le 14/03/2007 21:34:03

bonjour,

concernant les boutons reduire et maximiser, je viens enfin de trouver mon bonheur en vba...

http://www.mrexcel.com/archive2/59900/69386.htm

Commentaire de djgab21 le 02/03/2008 12:22:04 9/10

Bonjour;
Bon code MadM@TT Bravo 9/10

Commentaire de Renfield le 03/03/2008 09:11:04 administrateur CS

à ne pas faire sous cette forme...
RIEN ici ne te permet d'être sûr que tu as bien attaqué le bouton Fermer.

Call RemoveMenu(hMenu, nCount - 1, MF_REMOVE Or MF_BYPOSITION)

tu supprime le dernier élément de la liste... ok, mais on y met ce que l'on veut, dans ce menu, chez nVidia, par exemple, ils ajoutent des 'TomMost', etc.

Dim hMenu As Long
    hMenu = GetSystemMenu(Me.hWnd, 0)
    RemoveMenu hMenu, SC_CLOSE, MF_BYCOMMAND

Commentaire de Renfield le 03/03/2008 09:11:31 administrateur CS

*TopMost

Commentaire de MadM@tt le 03/03/2008 10:06:23

Tout à fait, c'était un peu hasardeux comme code je me rend compte.
Maintenant c'est plus propre
(en fait la fonction qui grise le menu je l'avais récupéré ailleurs, histoire de pouvoir tester celle qui dégrise)
Ah le VB... ça me manque :(

Commentaire de nkhilifatima le 17/09/2009 19:26:33

mon probleme c'est avec l'instruction Me.hwnd

Commentaire de Renfield le 17/09/2009 20:51:02 administrateur CS

pas simple en VBA, effectivement...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Gestion de la croix pour fermer une macro VBA [ par zgueg ] Je bosse actuellement sur une macro VBA sousBusiness Object 5.Mon appli plante losque je clique sur "la croix".J'aimerais donc savoir comment gerer ce fermer la croix d'un user et aller sur une page bien précise [ par yannch ] Bonjour, Mon user form est composé de combo box dont les données se copie sur une feuille A.Si je commence a saisir et qu'en plein milieu je veuille Fermer toutes les fenetres d'internet explorer [ par z980x ] Salut ! Je voudrais savoir comment fermer TOUTES les fenetres d'internet Explorer, sans savoir leur handle...Est-il possible de killer le processus IE Enlever la croix d'une boite de dialogue [ par jerome1983 ] Bonjour a tous,Je voudrai savoir s'il est possible d'enlever la croix pour fermer en haut a droite de la boite de dialogue.Car comme jai un bouton fer fermer correcte l'application avec la croix [ par nakano78 ] une question simple mais que je ne sais pas faire...Lorsque je quitte mon application par la croix.... le processus reste... donc ma question est simp fermer mon prg d'un seul coup [ par jeanlucsl ] salut a tousmon pb est le suivant: lorsque je clique sur la croix de windows pour fermer mon pgr, en fait il ne me ferme que la fenêtre presente Empêcher à un utilisateur de cliquer sur la croix d'un formulaire [ par syl2 ] Bonjour à tous,je suis en train de réaliser des formulaires sous Access, et j'essaye d'implémenter un code pour empêcher l'utilisateur de fermer mon f Fermer l'application Excel avec la croix d'une userform [ par pilou30 ] Bonjour,je me lance juste dans la programmation de macro, userbox ...... dans Excel. Grâce à l'aide et à internet, j'ai réussi pas [VB6] Problème avec la croix pour fermer une application [ par NeT_SlipKnoT ] Bonjour,j'ai un problème au niveau de mon programme VB. Mon projet est constitué de plusieurs forms dont 1 qui est le form principal (le men [vb.net] Fermer avec croix rouge Windows [ par Nexto ] Rebonsoir,   Je voudrais savoir comment je peux mettre une instruction quand on clique sur la croix rouge en haut à gauche Windows


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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 : 1,201 sec (4)

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