Fenetre fermé masm32

Soyez le premier à donner votre avis sur cette source.

Snippet vu 3 722 fois - Téléchargée 25 fois

Contenu du snippet

Bonjour a tous!
Mon prog s'occupe par l'intermediare d'un timer de fermer une fenetre bien precise a l'aide de findwindow et de sendmessage.
En faisant un clique droit ca fait un beep a l'aide de l'api: "Invoke GetAsyncKeyState, 2"
C'est le bonus du programme!!! :)
Bref Simple...
Bonne prog!

Source / Exemple :


.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib 
include \masm32\include\kernel32.inc
includelib \masm32\lib\kernel32.lib
include \masm32\include\rand.inc
WinMain proto :DWORD,:DWORD,:DWORD,:DWORD

.DATA   
ClassName db "SimpleWinClass",0    
AppName db "Our First Window",0  
shell db "Gestionnaire des tâches de Windows",0
Handle dd ?
Liste dd ?
.DATA?   
Buffer db 32 dup (?)

hInstance HINSTANCE ?   
CommandLine LPSTR ?
.CODE     
start:
INVOKE GetTickCount
INVOKE Randomize,eax
invoke GetModuleHandle, NULL           
                                                                  
mov hInstance,eax
invoke GetCommandLine                      
                                                                       ; 
mov CommandLine,eax
invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT     
invoke ExitProcess, eax                   

WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD
    LOCAL wc:WNDCLASSEX                                     
    LOCAL msg:MSG
    LOCAL hwnd:HWND

    mov   wc.cbSize,SIZEOF WNDCLASSEX         
    mov   wc.style, CS_HREDRAW or CS_VREDRAW
    mov   wc.lpfnWndProc, OFFSET WndProc
    mov   wc.cbClsExtra,NULL
    mov   wc.cbWndExtra,NULL
    push  hInstance
    pop   wc.hInstance
    mov   wc.hbrBackground,COLOR_WINDOW+1
    mov   wc.lpszMenuName,NULL
    mov   wc.lpszClassName,OFFSET ClassName
    invoke LoadIcon,NULL,IDI_APPLICATION
    mov   wc.hIcon,eax
    mov   wc.hIconSm,eax
    invoke LoadCursor,NULL,IDC_ARROW
    mov   wc.hCursor,eax
    invoke RegisterClassEx, addr wc            
    invoke CreateWindowEx,NULL,                ADDR ClassName,                ADDR AppName,                WS_OVERLAPPEDWINDOW,                CW_USEDEFAULT,                CW_USEDEFAULT,                CW_USEDEFAULT,                CW_USEDEFAULT,                NULL,                NULL,                hInst,                NULL
   aaa

    .WHILE TRUE            
                invoke GetMessage, ADDR msg,NULL,0,0     
                .BREAK .IF (!eax)
                invoke TranslateMessage, ADDR msg
                invoke DispatchMessage, ADDR msg
   .ENDW
    mov     eax,msg.wParam          
    ret
WinMain endp

WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM

Invoke SetTimer,hWnd,0,4, 0

.if uMsg == WM_TIMER
invoke FindWindow,0,addr shell
mov Handle,eax
.if eax != 0
    

 invoke SendMessage,Handle,WM_CLOSE,0,0
         
 

.endif  

Invoke GetAsyncKeyState, 2							
      .if eax != 0									
            invoke Beep,200,50
      .endif

.endif

 invoke DefWindowProc,hWnd,uMsg,wParam,lParam
    

    ret

WndProc endp

end start

Conclusion :


Faite gaffe...ici on ferme le Gestionnaire des tâches de Windows!

A voir également

Ajouter un commentaire

Commentaires

Messages postés
12
Date d'inscription
mercredi 3 novembre 2004
Statut
Membre
Dernière intervention
1 octobre 2005

Je suis mor de rir, il ne t'on meme pas donné de note, t'es meme pas classé
PS: tu ne m'a pas appris grand chose mais au moins j'ais bien rigolé (Ho Ho!!).
Messages postés
12
Date d'inscription
mercredi 3 novembre 2004
Statut
Membre
Dernière intervention
1 octobre 2005

Vv20oX a écri:
Il faut pas oublier les debutants aussi...

_-You take into to me?-_

Vv20oX a écri:
J'ai publié mes sources de 3 a 4 lignes pour les debutants

_-= OU SONT LES COMMENTAIRE???????

Vv20oX a écri:
mes sources sont faites par moi meme, il ne sont pas copier [...]
" ClassName db "SimpleWinClass",0 "
" AppName db "Our First Window",0 "

_-= ...ni collé bien sûr!

Vv20oX a écri:
.DATA
[...]
Handle dd ? ;<---- (??????)
Liste dd ? ;<---- (??????)

_-= ca va beaucoup nous aider ca... a nous les débutants!!!!!

Vv20oX a écri:
invoke CreateWindowEx,NULL, ADDR ClassName, ADDR AppName, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInst, NULL
aaa ;<----- (????? haaa!! ok j'ai compri)

BruNews a écri:
Vois bien que je ne t'agresse pas ni personne d'autre [...]


_-= maintenant regarde, moi qui n'y connai rien, je passe pour quelqu'un de plus calé que toi.
Si je te dit ca ... heuu non, si je perd mon temps a te dir ca, c'est que dans la vie, il faut paraitre bete devant les gens inteligent , et brillant devant les con heu ... les moins inteligents.
Et la, tu nous prend vraiment pour des con!!
...Un jour ca te perdra!!

Vv20oX si tu a le temps et l'envi, pourai tu m'aider a éclairé un point?
Tu sais dans quel circonstance windows appel la procedur WinProc?

Si non ta source meme pauvre d'information nous aide a déterminer les fonction neccesaire a faire un message systeme, et lancer un timer, y'a du bon quand meme :-)
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
Vois bien que je ne t'agresse pas ni personne d'autre, je dois seulement veiller a ce qu'aucun code malicieux ne soit distribue par le reseau CS. Je m'arrange assez bien avec mes connaissances rassure toi, tant que mes clients penseront la meme chose tout ira bien. Seulement les journees n'ont que 24 heures et pas le temps de decortiquer la valeur des octets.
Pour supprimer ton WinMain, va voir mon mastermind dans mes sources, tu verras que ne sert a rien. WinMain est transmis a un code C par son runtime, en asm c'est inutile.
Messages postés
8
Date d'inscription
dimanche 25 janvier 2004
Statut
Membre
Dernière intervention
8 mars 2004

Ah oui pour le vbs,il se contente d'affiché 2 messages.Je croyais que les Admins avait de solide connaissance pour le voir ,j'aurais du le preciser.
J'ai publié mes sources de 3 a 4 lignes pour les debutants,les autre sources sont longues et compliqué,mes sources sont faites par moi meme, il ne sont pas copier.Je me contente de puiser mes connaissances sur 2 livres en assembleur...
Je n'arrive pas a comprendre pourquoi tu m'agresses de la sorte.
Si je programme une démo,combien de personne vont comprendre ici.
Je pense,d'apres moi,si on fait des petits exemples pas trop compliqué, on peut aboutir a des programmes utiles.
Il faut pas oublier les debutants aussi...
A+ é bonne aprés midi.
Messages postés
8
Date d'inscription
dimanche 25 janvier 2004
Statut
Membre
Dernière intervention
8 mars 2004

Salut,"WinMain proc" ,oui en asm, sous masm32.C'est pas etonnant de voir cette procedure la.
Je programme sous MASM32.
Winmain proc ,sert un creer une fenetre afin de pouvoir utilisé mon timer.Il y a peut-etre bien plus simple,je vais voir,tiens par curieusité!
Bien sur,je rend la fenetre invisible aprés...
Voila..
Afficher les 7 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.