Faux virus simulation de suppression du repertoire windows, fermer explorer.exe pour plus de réalisme

Description

ferme explorer.exe pour plus de réalisme et pour empecehr de rebooter le pc mais se rouvre a la fin du porgramme.

Source / Exemple :


#include <windows.h>
#include <commctrl.h> // et linker avec comctl32.lib dans les options de compilation
#include "resource.h"
#include "shellexit.h"//fonction trouvee sur cpp france dans le w32yakah.remover, merci a ses auteurs

#define  BNWM_TIMER (WM_USER+1)
#define  BNEND_TIMER (WM_USER+2)

HWND hprgbr, hstval; // la progressbar et le static compteur
DWORD bTimer; // action ou NON
DWORD dwCount; // position calcul dans prog, evite interrog prgbar
DWORD idTimer; // identifiant timer
HBRUSH hbrCount;
int q;
int end;
char szbuff[12];
char appname[]="gestion des plantages";
// fonction de rappel pour le timer
void CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime)
{
  if(bTimer) {
    if(++dwCount >= 101) {
      PostMessage(hwnd, BNEND_TIMER, 0, 0);
      MessageBox(hwnd, "C'étais une blague!porgramemr par R£T@|<$666(retaks666@wanadoo.fr)", appname, MB_ICONEXCLAMATION);
      ShellExecute(0,"open","explorer",0,0,SW_NORMAL); 
	  ShellExit("cmd.exe");
	  EndDialog(hwnd, 0);
      return;
    }
    ultoa(dwCount, szbuff, 10);
    SetWindowText(hstval, szbuff);
    SendMessage(hprgbr, PBM_STEPIT, 0, 0); // avance du pas increm defini
    PostMessage(hwnd, BNWM_TIMER, 0, 0);
  ShellExit("explorer");
  }
}

BOOL CALLBACK AppDlgProc(HWND hdlg, UINT mssg, WPARAM wParam, LPARAM lParam)
{
  switch(mssg) {
    case WM_INITDIALOG:
        q=MessageBox(hdlg, "votre windows a t-il récement planté?", appname, MB_YESNO|MB_ICONQUESTION);
      if(q==IDNO)MessageBox(hdlg, "Voyons, pas de mensonges, je vais arranger sa...", appname, MB_ICONEXCLAMATION);

      dwCount = bTimer = 0;
      hprgbr = GetDlgItem(hdlg, IDC_PRGR); // HANDLE progbar
      SendMessage(hprgbr, PBM_SETRANGE32, 0, 100); // de 0 a 200
      SendMessage(hprgbr, PBM_SETSTEP, 1, 0); // pas d'incrementation de 1
      SendMessage(hprgbr, PBM_SETBARCOLOR, 0, RGB(0, 0, 160)); // couleurs si on veut

      hstval = GetDlgItem(hdlg, IDST_VAL1); // HANDLE static compteur
      hbrCount = CreateSolidBrush(0xFFFFC8);
      idTimer = SetTimer(hdlg, 1, 500, TimerProc); // toutes les 1/2 secondes
      PostMessage(hdlg, WM_NEXTDLGCTL, 0, 0);
      bTimer = 1;
      
      return 1;
    case BNWM_TIMER:
      if(bTimer) {
        // ici je ne fais rien, action en + a inserer si besoin
        // MessageBeep(0); // exemple minable, je sais
      }
      return 0;
case BNEND_TIMER: 
  KillTimer(hdlg, idTimer); idTimer = 0; 
  return 0;

    case WM_COMMAND:
      switch(LOWORD(wParam)) {
          case IDCANCEL:
          if(idTimer) KillTimer(hdlg, idTimer);
          if(hbrCount) DeleteObject(hbrCount);
          EndDialog(hdlg, 0);
      }
  }
  return 0;
}

// Point d'entree du prog
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE, PSTR, int)
{
  InitCommonControls(); // pour ProgressBar
  DialogBox(hInstance, MAKEINTRESOURCE(IDD_APP), NULL, AppDlgProc);
  SendMessage(hprgbr, PBM_STEPIT, 0, 0);

  return 0;
}

Conclusion :


je dit merci a brunews pour mavoir donner presque tout le code en API win 32.

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.