Prog egoiste (win32,vc++,asm)

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

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.