Fermer toutes fenetres (win32)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 302 fois - Téléchargée 29 fois

Contenu du snippet

C'est fait sur MASM, adaptable sur autre ???
Le source dessous est complet pour assemblage.
Aucune perte de donnees car demande d'enreg si le cas.

On se retouve aussi sur: http://www.dev.winsysdev.com/

Source / Exemple :


.586
.model flat, stdcall
option casemap :none
option prologue:none
option epilogue:none

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc

includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib

.code
start:
 ALIGN 4
   push     0
   push     offset EnumWindowsProc
   call     EnumWindows
   push     0
   call     ExitProcess

EnumWindowsProc PROC ; hwnd(esp+4),lParam(esp+8)
   mov      eax, [esp+4]
   push     edi
   sub      esp, 16  ; szClssName[16]
   mov      edi, eax  ; EDI = hwnd
   push     eax
   call     IsWindowVisible
   or       eax, eax
   jz       short nextWind
   push     edi
   call     GetWindowTextLength
   mov      ecx, esp
   or       eax, eax
   jz       short nextWind
   push     16
   push     ecx
   push     edi
   call     GetClassName ; "Progman" ou "Shell_TrayWnd"
   mov      eax, [esp]
   mov      edx, [esp+4]
   cmp      eax, 676F7250h ; "gorP"
   jne      short verifTaskbar
   cmp      edx, 6E616Dh   ; 0,"nam"
   je       short nextWind
 verifTaskbar:
   mov      ecx, [esp+8]
   cmp      eax, 6C656853h ; "lehS"
   jne      short goodWnd
   cmp      edx, 72545F6Ch ; "rT_l"
   jne      short goodWnd
   cmp      ecx, 6E577961h ; "nWya"
   jne      short goodWnd
   cmp      byte ptr[esp+12], 'd'
   je       short nextWind
 goodWnd:
   mov      [esp], edi  ; laisser pour demande eregistrer
   call     SetForegroundWindow
   mov      eax, esp
   mov      ecx, edi
   mov      dword ptr[eax+8], 0
   mov      dword ptr[eax+4], WM_CLOSE
   mov      edi, [eax+12]
   mov      dword ptr[eax], ecx
   mov      dword ptr[eax+12], 0
   call     PostMessage
   jmp      short enumExit
 nextWind:
   add      esp, 16
   pop      edi
 enumExit:
   or       eax, 1
   ret      8
EnumWindowsProc ENDP

end start

Conclusion :


Placer un raccourci "AllClose" en racine de "Demarrer" de ce prog.
Vous verrez que c'est utile.
ciao...

A voir également

Ajouter un commentaire Commentaires
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
24
Non, c'est juste une habitude car en fait j'ai des squelettes de fichiers asm prets a l'emploi et je laisse toujours 586 car cela ne change rien en conso. Un prog consomme pour autant qu'il y a des instructions specifiques au mmx ou SSE, si aucune comme c'est le cas ici tu peux reassembler en mettant 386 et tu verras que resultat idem.
ciao...
Messages postés
150
Date d'inscription
jeudi 24 janvier 2002
Statut
Membre
Dernière intervention
27 avril 2007

perso j'ai po compiler mais a vu d'oeil je dirai que:

ton code boit bouffer po mal de ressource en utilisant .586

t vraiment sur que c po trop?

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.