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

Soyez le premier à donner votre avis sur cette source.

Vue 7 383 fois - Téléchargée 539 fois

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

Ajouter un commentaire

Commentaires

Messages postés
7
Date d'inscription
lundi 28 mai 2007
Statut
Membre
Dernière intervention
12 juin 2009

Il manque resource.h !!!
Messages postés
755
Date d'inscription
samedi 15 mai 2004
Statut
Membre
Dernière intervention
30 janvier 2011

Ps : Pendant ton message de suppression de Windir :) tu peux appuyer sur la croix et donc quitter le prog :) aussi
%windir% ne marche pas :)
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
Lis bien les commentaires et enregistre.
Explic complement sur remarque de Kaid:
Le systeme detruit toute fenetre fille(controle) quand fenetre parent est detruite, ce qui arrive avec EndDialog(hdlg, 0); donc ton HWND hprgbr ne pointe plus sur rien. Fais le test, ajoute IsWindow(hprgbr) blabla avant le return 0; tu verras que n'existe plus.
switch(LOWORD(wParam)) peut se remplacer par switch(wParam) pour tester mssg de dialog sans decomposer quand on ne recupere pas de notification de controle. C'est le cas ici, teste sur BN_CLIC de button inutile puisque vaut 0 donc on laisse wParam entier.
Ira bien pour cette fois et plein pot sur Petzold.
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

SendMessage(hprgbr, PBM_STEPIT, 0, 0) ne sert à rien dans ton WinMain(). La dialog contenant le contrôle n'est plus valide, ton contrôle n'est pas donc plus valide non plus.
Messages postés
286
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 juillet 2007

oui c vrai mais bon...
Afficher les 6 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.