Fermer toutes fenetres (win32)

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

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.