begin process at 2010 03 19 03:31:43
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

c et asm

 > FENETRE FERMÉ MASM32

FENETRE FERMÉ MASM32


 Information sur la source

 Description

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

  • .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
.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!


 Sources du même auteur

CHEMIN DES REPERTOIRES SYSTEM,WINDOWS,TEMPORAIRE,COURANT [MA...
LISTER VOS FICHIER TEMPORAIRE DANS UNE LISTBOX MASM32
COSINUS D'UN ANGLE EN DEGRÉS MASM32
TEXTBOX,BOUTON,TIMER MASM32
AFFICHER UNE CHAINE DE CARACTERE MASM32

 Sources de la même categorie

Source avec Zip MOT PALINDROME par Tinsalhi
EXECUTE /USR/BIN/ID par 0x0syscall
BIBLIOTHEQUE POUR LE 8086 par flory_
.:| CONVERSION D'UNE CHAINE EN MAJUSCULE |:. par fenkouch
PROGRAMME DE TRI (CROISSANT) D'UN TABLEAU EN ASSEMBLEUR DU D... par monticarlo

Commentaires et avis

Commentaire de BruNews le 25/01/2004 13:37:30 administrateur CS

A quoi sert "WinMain proc" en ASM ? tu empiles des params inutilement.
Si c'est juste pour faire la traduc du C en ASM, un compilo le fera idem.

Commentaire de BruNews le 25/01/2004 13:49:54 administrateur CS

Autres precisions:
Pas de source faisant un vbs et qu'on lance ni tout autre script. Je n'ai pas le temps de verifier ce que tu mets dans le vbs et donc je supprime ce genre de source illico. Une source sur asmfr est faite pour expliquer du point de vue asm un point de prog particulier.

Pour les precedentes aussi, plutot que d'envoyer une avalanche de sources de 3 ou 4 lignes dont l'interet est plus que discutable, groupe et fais en une demo interessante.

ciao...
BruNews, Admin CS

Commentaire de Vv20oX le 25/01/2004 14:07:38

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..

Commentaire de Vv20oX le 25/01/2004 14:16:04

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.

Commentaire de BruNews le 25/01/2004 14:26:21 administrateur CS

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.

Commentaire de mygiorgio le 23/09/2005 02:27:52

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 :-)

Commentaire de mygiorgio le 23/09/2005 02:33:21

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!!).

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
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 : 0,390 sec (4)

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