Prog egoiste (win32,vc++,asm)

Soyez le premier à donner votre avis sur cette source.

Vue 4 034 fois - Téléchargée 229 fois

Description

Une appli stupide, je précise de suite.
Une fenetre ordinaire sauf qu'elle n'aime pas ALT+TAB ou autre.
Si on navigue dans progs ouverts, elle ferme tous les autres.
Tout dans zip pour recompiler, 3 fichiers et prog fait.
Egoiste.cpp est le prog C pour fenetre.
Destroyer.cpp et Destroyer.h ajoutables dans tout prog.

Source / Exemple :


#include <windows.h>
#include "Destroyer.h"

DWORD flag = 0;
HWND  hwndapp;
char *szappname = "Egoiste";

LRESULT CALLBACK AppWndProc(HWND hwnd, UINT mssg, WPARAM wParam, LPARAM lParam)
{
  switch(mssg) {
    case WM_ACTIVATEAPP:
      if(!wParam) {flag = 1; DestroyWnds(hwnd); flag = 0;}
      return 0;
    case WM_CLOSE:
      if(flag) return 0;
      break;
    case WM_DESTROY:
      PostQuitMessage(0);
  }
  return DefWindowProc(hwnd, mssg, wParam, lParam);
}

void __stdcall InitInstance(HINSTANCE hinst)
{
  WNDCLASSEX  wclsx;
  wclsx.cbSize        = sizeof(WNDCLASSEX);
  wclsx.style         = CS_HREDRAW | CS_VREDRAW;
  wclsx.hCursor       = LoadCursor(0, IDC_ARROW);
  wclsx.hInstance     = hinst;
  wclsx.cbClsExtra = wclsx.cbWndExtra = 0;
  wclsx.hIconSm = 0; wclsx.lpszMenuName = 0;
  wclsx.hIcon         = LoadIcon(0, IDI_APPLICATION);
  wclsx.lpfnWndProc   = AppWndProc;
  wclsx.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
  wclsx.lpszClassName = szappname;
  if(!RegisterClassEx(&wclsx)) goto errInit;
  hwndapp = CreateWindowEx(0, szappname, szappname,
               WS_OVERLAPPED | WS_SYSMENU,
               CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
               0, 0, hinst, 0);
  return;
errInit:
  MessageBox(0, "ERREUR", szappname, MB_ICONERROR);
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR, int)
{
  MSG  msg;
  InitInstance(hInstance);
  if(!hwndapp) return 0;
  ShowWindow(hwndapp, SW_SHOW); UpdateWindow(hwndapp);
  while(GetMessage (&msg, 0, 0, 0)) {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
  }
  return 0;
}

Conclusion :


Destroyer.cpp (en ASM) peut s'employer a de mauvaises fins.
Je n'ose l'imaginer.
Je fournis juste pour étude des callback d'enumeration.
Exemple a ne pas suivre, invalider lignes depuis:
push edi ; lgn 16 jusque
jz short L3 ; lgn 20 comprise
et patatras session Windows(2k et XP compris).
Il y aurait + grave mais je n'insiste pas.
Bonne lecture et pas d'abus.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
12
Date d'inscription
dimanche 7 novembre 2010
Statut
Membre
Dernière intervention
4 décembre 2010

Tu fait toujour des programmes super mais je n'y conait rien a l'asm résultat je ne comprent pas le code :(
Enfin, félicitation c'est du beau boulot !
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
24
merci pour ce commentaire.
Si je vois que prog systeme interesse du monde, je ferai d'autres petites appli de ce genre quand j'aurai du temps.
ciao...
Messages postés
41
Date d'inscription
dimanche 17 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2004

C'est sympa de mettre des apps bas niveau comme cela pour windows ... merci.

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.