Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SUPPRESSION FICHIER TEMP [DEMANDE FORUM]


Information sur la source



Description

Source en reponse à une demande du forum
Developpé avec Borland c++ builder
Affiche une barre de progression pendant la suppresion des fichier temporaire windows et IE ainsi que les cookies du profil windows en cours.

Je pense pas qu'il fonctionne sous 95, dans tous les cas je pense que les resultat doivent etre imprevisible, j'ai donc empecher le prog de s'executer sous win 9x. Si certains peuvent le tester merci.
 

Source

  • //---------------------------------------------------------------------------
  • #include <clx.h>
  • #include <windows.h>
  • #include <stdio.h>
  • #include <commctrl.h> //Necessaire pour la classe PROGRESS_CLASS
  • //Chargée avec InitCommonControlsEx
  • #pragma comment ( lib , "C:\Program Files\Borland\CBuilder6\Lib\Psdk\comctl32.lib" )
  • #pragma comment ( lib , "C:\Program Files\Borland\CBuilder6\Lib\Psdk\kernel32.lib" )
  • HWND g_hwndWin ; //Handle de la fenetre
  • HWND hwndProgressBar ; //Handle de la ProgressBar
  • TCHAR * g_szTitle = TEXT ( "En cours..." ) ,
  • //Nom de la fenetre principale
  • * g_szClassName = TEXT ( "WindowsClass" ) ;
  • //Nom de la class de la fenetre principale
  • //---------------------------------------------------------------------------
  • // Déclaration des fonctions
  • LRESULT CALLBACK WndProc ( HWND f_hwnd , UINT f_msg , WPARAM f_wParam ,
  • LPARAM f_lParam ) ;
  • bool NT_Ou_Plus ( void ) ; //Test si le poste est sous NT ou plus
  • void fSupp_Files ( char f_Rep [ 512 ] ) ; //Suppression récursive des fichiers d'un repertoire
  • /***********************************************************************
  • FONCTION:
  • WinMain
  • BUT:
  • Fonction pricinpal appeler en premier The WinMain function of the application. It is called by the system as
  • the initial entry point for this Windows CE-based application.
  • ***********************************************************************/
  • int WINAPI WinMain( HINSTANCE hInstance ,
  • HINSTANCE hPrevInstance ,
  • LPSTR lpCmdLine ,
  • int iCmdShow )
  • {
  • //Declaration des variables locales
  • g_hwndWin = hInstance ;
  • MSG msg ; //Contiendra les messages
  • int iSpacing ; //Controls the size of the progress bar.
  • INITCOMMONCONTROLSEX iccInit; //Structure de la ProgressBar
  • RECT rcClient ; //Coordonnees de la fenetre [(0,0) , (right,bottom)]
  • char Temp [ 256 ] , Temp_IE [ 256 ] , Cookies [ 256 ] ;
  • HKEY hKey ;
  • unsigned long Size = sizeof ( Temp_IE ) ;
  • //Pour stocker la structure de la class
  • WNDCLASS WndClass ;
  • if ( NT_Ou_Plus ( ) == FALSE )
  • {
  • MessageBox ( NULL , "Vous devez executer Windows NT ou superieur pour utiliser ce programme." , "Erreur réparation intranex" , NULL ) ;
  • return FALSE ;
  • }
  • //Creation de la class
  • WndClass.style = CS_HREDRAW | CS_VREDRAW ; //Style de la class
  • WndClass.lpfnWndProc = ( WNDPROC ) WndProc ; //Adresse de la procedure qui va recevoir les messages
  • WndClass.cbClsExtra = NULL ; //Optionnel
  • WndClass.cbWndExtra = NULL ; //Optionnel
  • WndClass.hIcon = LoadIcon( NULL , IDI_WINLOGO ) ;
  • WndClass.hInstance = hInstance ;
  • WndClass.hCursor = NULL ;
  • WndClass.hbrBackground = ( HBRUSH ) GetStockObject ( LTGRAY_BRUSH ) ;
  • WndClass.lpszMenuName = NULL ;
  • WndClass.lpszClassName = g_szClassName ; //Nom de la classe
  • //Enregistrement de la classe
  • RegisterClass ( &WndClass ) ;
  • g_hwndWin = CreateWindow (
  • g_szClassName , // Registered class name
  • g_szTitle , // Nom de la fenetre
  • WS_OVERLAPPED | WS_SYSMENU , // Window style
  • 200 , // Position horizontal de la fenetre
  • 200 , // Position vertical de la fenetere
  • 300 , // Largeur de la fenetre
  • 100 , // Hauteur de la fenetre
  • NULL , // Handle de la fenetre parent
  • NULL , // Handle du menu ou d'une fenetre enfant
  • NULL , // Ignoré sur Windows NT, 2000 et XP
  • NULL ) ; // Necessaire pour des applications multi-fenetre
  • //Initialisation et chargement du control ProgressBar
  • iccInit.dwSize = sizeof ( iccInit ) ;
  • iccInit.dwICC = ICC_PROGRESS_CLASS ;
  • InitCommonControlsEx ( &iccInit ) ;
  • //Create the window for the progress bar.
  • //Recuperation des coordonnees de la fenetre principale
  • GetClientRect( g_hwndWin , &rcClient ) ;
  • //Definition de la taille de la ProgressBar
  • iSpacing = ( int ) ( 0.05 * ( rcClient.right - rcClient.left ) ) ;
  • //Creation de la fenetre
  • hwndProgressBar = CreateWindowEx( 0 ,
  • PROGRESS_CLASS,
  • TEXT( "Progess Bar" ) ,
  • WS_CHILD | WS_VISIBLE ,
  • rcClient.left + iSpacing ,
  • ( int ) ( ( rcClient.bottom - rcClient.top ) / 2 - iSpacing / 2 ) ,
  • rcClient.right - 2 * iSpacing ,
  • iSpacing ,
  • g_hwndWin ,
  • NULL ,
  • hInstance ,
  • NULL ) ;
  • // Affiche la ProgressBar
  • ShowWindow ( g_hwndWin , iCmdShow ) ;
  • // UpdateWindow ( g_hwndMain ) ;
  • // Configuration du range et de l'increment de la ProgressBar
  • SendMessage( hwndProgressBar , PBM_SETRANGE , 0 , MAKELPARAM ( 0 , 100 ) ) ;
  • SendMessage( hwndProgressBar , PBM_SETSTEP , MAKEWPARAM ( 1 , 0 ) , 0 ) ;
  • //Increment la barre de progression
  • SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
  • //Ouverture de la base de registre
  • //Increment la barre de progression
  • SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
  • RegOpenKeyEx ( HKEY_CURRENT_USER , "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders" , NULL , KEY_QUERY_VALUE , &hKey ) ;
  • //Increment la barre de progression
  • SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
  • //Supression des fichiers
  • //Suppression du repertoire client
  • //Increment la barre de progression
  • SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
  • // fSupp_Files ( "c:\\Program Files\\Intranex\\" ) ;
  • //Increment la barre de progression
  • SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
  • //Suppression du repertoire temp
  • //Increment la barre de progression
  • SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
  • GetTempPath ( 256 , Temp ) ;
  • //Increment la barre de progression
  • SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
  • fSupp_Files ( Temp ) ;
  • //Increment la barre de progression
  • SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
  • //Suppression des temporaires IE
  • //Increment la barre de progression
  • SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
  • RegQueryValueEx ( hKey , "Cache" , NULL , NULL , ( LPBYTE ) &Temp_IE , &Size ) ;
  • //Increment la barre de progression
  • SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
  • strcat ( Temp_IE , "\\" ) ;
  • //Increment la barre de progression
  • SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
  • fSupp_Files ( Temp_IE ) ;
  • //Increment la barre de progression
  • SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
  • //Suppression des Cookies
  • //Increment la barre de progression
  • SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
  • RegQueryValueEx ( hKey , "Cookies" , NULL , NULL , ( LPBYTE ) &Cookies , &Size ) ;
  • //Increment la barre de progression
  • SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
  • strcat ( Cookies , "\\" ) ;
  • //Increment la barre de progression
  • SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
  • fSupp_Files ( Cookies ) ;
  • //Increment la barre de progression
  • SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
  • //Configuration de IE via la base de registre
  • //Increment la barre de progression
  • SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
  • //Fermeture de la base de registre
  • RegCloseKey ( hKey ) ;
  • return msg.wParam ;
  • }
  • //---------------------------------------------------------------------------
  • //---------------------------------------------------------------------------
  • //Suppression récursive des fichiers d'un repertoire
  • void fSupp_Files ( char f_Rep [ 512 ] )
  • {
  • //Déclaration des variables
  • char f_Chemin [ 512 ] ;
  • WIN32_FIND_DATA wData ;
  • HANDLE f_Find ;
  • //Initialisation des variables
  • //Ajout de *.* f_Chemin
  • sprintf ( f_Chemin , "%s*.*" , f_Rep) ;
  • //Initialisation du Handle de recherche de fichiers
  • f_Find = FindFirstFile(f_Chemin, &wData);
  • //Suppresion de *.* a f_Chemin
  • strcpy ( f_Chemin , f_Rep ) ;
  • if ( f_Find != INVALID_HANDLE_VALUE)
  • {
  • do
  • {
  • if ( ( strcmp (wData.cFileName , "..") ) && ( strcmp (wData.cFileName, ".") ) )
  • {
  • if ( wData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY )
  • {
  • //puisque c'est un repertoire, on recupere la nouvelle adresse, et on va rentrer dedans...
  • sprintf ( f_Chemin , "%s%s\\", f_Rep , wData.cFileName ) ;
  • //On rappelle la fonction pour qu'elle supprime les fichiers du répèrtoire
  • fSupp_Files ( f_Chemin ) ;
  • //Suppression du repertoire une foi tous les fichiers du repertoire supprimés
  • //Increment la barre de progression
  • SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
  • RemoveDirectory ( f_Chemin ) ;
  • //MessageBox ( NULL, f_Chemin , "Supression rep" , NULL ) ;
  • // reviens un repertoire en arriere
  • int j = strlen ( f_Chemin ) - 2 ;
  • while ( j > 0 )
  • {
  • if ( f_Chemin [ j ] == '\\' )
  • {
  • f_Chemin [ j+1 ] = '\0' ;
  • break ;
  • }
  • j -- ;
  • }
  • }
  • else // ce n'est pas un répèrtoire donc le fichier est supprimé
  • sprintf ( f_Chemin , "%s%s" , f_Rep , wData.cFileName ) ;
  • DeleteFile ( f_Chemin ) ;
  • }
  • } while ( FindNextFile ( f_Find , &wData ) ) ;
  • }
  • FindClose( f_Find );
  • }
  • //---------------------------------------------------------------------------
  • /***********************************************************************
  • FONCTION:
  • WndProc
  • BUT:
  • Fonction qui va recevoire les messages envoyes a la fenetre.
  • ***********************************************************************/
  • LRESULT CALLBACK WndProc ( HWND f_hwnd , UINT f_msg , WPARAM f_wParam ,
  • LPARAM f_lParam )
  • {
  • switch ( f_msg )
  • {
  • // Add cases such as WM_CREATE, WM_COMMAND, WM_PAINT if you don't
  • // want to pass these messages along for default processing.
  • //Lorsque l'utilisateur ferme la fenêtre via le menu système
  • case WM_CLOSE : //Envoi le message pour quitter le programme
  • DestroyWindow ( f_hwnd ) ;
  • return 0 ;
  • //Lors de la destruction de la fenetre
  • case WM_DESTROY : //Optionnel
  • PostQuitMessage ( 0 ) ;
  • return 0 ;
  • }
  • return DefWindowProc ( f_hwnd , f_msg , f_wParam , f_lParam ) ;
  • }
  • //---------------------------------------------------------------------------
  • /*
  • //---------------------------------------------------------------------------
  • // Fonction pour récupérer le msg d'erreur
  • // Récupère le numero de l'erreur, message associé et log dans un fichiet log
  • // avec un commentaire passé en argument.
  • // Le fichier de log est transmit immédiatement apres ecriture sur un FTP
  • void fError_Msg ( DWORD f_Error_Num , // Numéro de l'erreur renvoye pas la dernière operation
  • char f_Msg_Log [1024] ) // Message d'erreur a mettre ds le fichier log
  • {
  • // Déclaration et initialisation des variables
  • LPVOID f_Msg_Buffer ; //Necessaire à FORMAT_MESSAGE_ALLOCATE_BUFFER
  • FILE * log ;
  • // Ouverture du fichier en mode ajout
  • log = fopen ( "c:\\intranex.log" , "a" ) ;
  • // Récupération du message d'erreure
  • FormatMessage ( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM , NULL , f_Error_Num , MAKELANGID ( LANG_NEUTRAL , SUBLANG_DEFAULT ) , (LPTSTR) &f_Msg_Buffer ,NULL , NULL ) ;
  • // Ecriture du message d'erreur dans le fichier
  • fprintf ( log , "Erreur %d, %s\n%s\n\n\n" , f_Error_Num , f_Msg_Buffer , f_Msg_Log) ;
  • // Libération des objects
  • LocalFree( f_Msg_Buffer ) ;
  • fclose ( log ) ;
  • }
  • //---------------------------------------------------------------------------
  • */
//---------------------------------------------------------------------------

#include <clx.h>
#include <windows.h>
#include <stdio.h>
#include <commctrl.h>           //Necessaire pour la classe PROGRESS_CLASS
                                //Chargée avec InitCommonControlsEx
#pragma comment ( lib , "C:\Program Files\Borland\CBuilder6\Lib\Psdk\comctl32.lib" )
#pragma comment ( lib , "C:\Program Files\Borland\CBuilder6\Lib\Psdk\kernel32.lib" )


HWND g_hwndWin ;        //Handle de la fenetre
HWND hwndProgressBar ;  //Handle de la ProgressBar
TCHAR * g_szTitle = TEXT ( "En cours..." ) ,
                              //Nom de la fenetre principale
      * g_szClassName = TEXT ( "WindowsClass" ) ;
                              //Nom de la class de la fenetre principale

//---------------------------------------------------------------------------
// Déclaration des fonctions
LRESULT CALLBACK WndProc ( HWND f_hwnd , UINT f_msg , WPARAM f_wParam ,
                          LPARAM f_lParam ) ;

bool NT_Ou_Plus ( void ) ;                      //Test si le poste est sous NT ou plus

void fSupp_Files ( char f_Rep [ 512 ] ) ;       //Suppression récursive des fichiers d'un repertoire


/***********************************************************************

FONCTION:
  WinMain

BUT:
  Fonction pricinpal appeler en premier The WinMain function of the application. It is called by the system as
  the initial entry point for this Windows CE-based application.

***********************************************************************/
int WINAPI WinMain( HINSTANCE hInstance ,
                HINSTANCE hPrevInstance ,
                LPSTR lpCmdLine ,
                int iCmdShow )
{
 //Declaration des variables locales
 g_hwndWin = hInstance ;
 MSG msg ;                      //Contiendra les messages
 int iSpacing ;                 //Controls the size of the progress bar.
 INITCOMMONCONTROLSEX iccInit;  //Structure de la ProgressBar
 RECT rcClient ;                //Coordonnees de la fenetre [(0,0) , (right,bottom)]
 char Temp [ 256 ] , Temp_IE [ 256 ] , Cookies [ 256 ] ;
 HKEY hKey ;
 unsigned long Size = sizeof ( Temp_IE ) ;
 //Pour stocker la structure de la class
 WNDCLASS WndClass ;

   if ( NT_Ou_Plus ( ) == FALSE )
 {
     MessageBox ( NULL , "Vous devez executer Windows NT ou superieur pour utiliser ce programme." , "Erreur réparation intranex" , NULL ) ;
     return FALSE ;
 }

 //Creation de la class
 WndClass.style = CS_HREDRAW | CS_VREDRAW ;   //Style de la class
 WndClass.lpfnWndProc = ( WNDPROC ) WndProc ; //Adresse de la procedure qui va recevoir les messages
 WndClass.cbClsExtra = NULL ;                 //Optionnel
 WndClass.cbWndExtra = NULL ;                 //Optionnel
 WndClass.hIcon = LoadIcon( NULL , IDI_WINLOGO ) ;
 WndClass.hInstance = hInstance ;
 WndClass.hCursor = NULL ;
 WndClass.hbrBackground = ( HBRUSH ) GetStockObject ( LTGRAY_BRUSH ) ;
 WndClass.lpszMenuName = NULL ;
 WndClass.lpszClassName = g_szClassName ;     //Nom de la classe
 //Enregistrement de la classe
 RegisterClass ( &WndClass ) ;

 g_hwndWin = CreateWindow (
                  g_szClassName ,  // Registered class name
                  g_szTitle ,      // Nom de la fenetre
                  WS_OVERLAPPED | WS_SYSMENU ,  // Window style
                  200 ,  // Position horizontal de la fenetre
                  200 ,  // Position vertical de la fenetere
                  300 ,  // Largeur de la fenetre
                  100 ,  // Hauteur de la fenetre
                  NULL ,           // Handle de la fenetre parent
                  NULL ,           // Handle du menu ou d'une fenetre enfant
                  NULL ,           // Ignoré sur Windows NT, 2000 et XP
                  NULL ) ;         // Necessaire pour des applications multi-fenetre


 //Initialisation et chargement du control ProgressBar
 iccInit.dwSize = sizeof ( iccInit ) ;
 iccInit.dwICC = ICC_PROGRESS_CLASS ;
 InitCommonControlsEx ( &iccInit ) ;

 //Create the window for the progress bar.
 //Recuperation des coordonnees de la fenetre principale
 GetClientRect( g_hwndWin , &rcClient ) ;
 //Definition de la taille de la ProgressBar
 iSpacing = ( int ) ( 0.05 * ( rcClient.right - rcClient.left ) ) ;

 //Creation de la fenetre
 hwndProgressBar = CreateWindowEx( 0 ,
                        PROGRESS_CLASS,
                        TEXT( "Progess Bar" ) ,
                        WS_CHILD | WS_VISIBLE ,
                        rcClient.left + iSpacing ,
                        ( int ) ( ( rcClient.bottom - rcClient.top ) / 2 - iSpacing / 2 ) ,
                        rcClient.right - 2 * iSpacing ,
                        iSpacing ,
                        g_hwndWin ,
                        NULL ,
                        hInstance ,
                        NULL ) ;

 // Affiche la ProgressBar
 ShowWindow ( g_hwndWin , iCmdShow ) ;
// UpdateWindow ( g_hwndMain ) ;

 // Configuration du range et de l'increment de la ProgressBar
 SendMessage( hwndProgressBar , PBM_SETRANGE , 0 , MAKELPARAM ( 0 , 100 ) ) ;
 SendMessage( hwndProgressBar , PBM_SETSTEP , MAKEWPARAM ( 1 , 0 ) , 0 ) ;

 //Increment la barre de progression
 SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;

 //Ouverture de la base de registre
 //Increment la barre de progression
 SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
 RegOpenKeyEx ( HKEY_CURRENT_USER , "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders" , NULL , KEY_QUERY_VALUE , &hKey ) ;
 //Increment la barre de progression
 SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;


 //Supression des fichiers

 //Suppression du repertoire client
 //Increment la barre de progression
 SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
// fSupp_Files ( "c:\\Program Files\\Intranex\\" ) ;
 //Increment la barre de progression
 SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;

 //Suppression du repertoire temp
 //Increment la barre de progression
 SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
 GetTempPath ( 256 , Temp ) ;
 //Increment la barre de progression
 SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
 fSupp_Files ( Temp ) ;

 //Increment la barre de progression
 SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;

 //Suppression des temporaires IE
 //Increment la barre de progression
 SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
 RegQueryValueEx ( hKey , "Cache" , NULL , NULL , ( LPBYTE ) &Temp_IE , &Size ) ;
 //Increment la barre de progression
 SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
 strcat ( Temp_IE , "\\" ) ;
 //Increment la barre de progression
 SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
 fSupp_Files ( Temp_IE ) ;
 //Increment la barre de progression
 SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;

 //Suppression des Cookies
 //Increment la barre de progression
 SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
 RegQueryValueEx ( hKey , "Cookies" , NULL , NULL , ( LPBYTE ) &Cookies , &Size ) ;
 //Increment la barre de progression
 SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
 strcat ( Cookies , "\\" ) ;
 //Increment la barre de progression
 SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
 fSupp_Files ( Cookies ) ;
 //Increment la barre de progression
 SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;

 //Configuration de IE via la base de registre
 //Increment la barre de progression
 SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;


 //Fermeture de la base de registre
 RegCloseKey ( hKey ) ;

 return msg.wParam ;
}
//---------------------------------------------------------------------------








//---------------------------------------------------------------------------
//Suppression récursive des fichiers d'un repertoire
void fSupp_Files ( char f_Rep [ 512 ] )
{
 //Déclaration des variables
 char f_Chemin [ 512 ] ;
 WIN32_FIND_DATA wData ;
 HANDLE f_Find ;

 //Initialisation des variables
 //Ajout de *.* f_Chemin
 sprintf ( f_Chemin , "%s*.*" , f_Rep) ;
 //Initialisation du Handle de recherche de fichiers
 f_Find = FindFirstFile(f_Chemin, &wData);
 //Suppresion de *.* a f_Chemin
 strcpy ( f_Chemin , f_Rep ) ;

 if ( f_Find != INVALID_HANDLE_VALUE)
 {
        do
        {
            if ( ( strcmp (wData.cFileName , "..") ) && ( strcmp (wData.cFileName, ".") ) )
            {
                if ( wData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY )
                {
                        //puisque c'est un repertoire, on recupere la nouvelle adresse, et on va rentrer dedans...
                        sprintf ( f_Chemin , "%s%s\\", f_Rep , wData.cFileName ) ;
                        //On rappelle la fonction pour qu'elle supprime les fichiers du répèrtoire
                        fSupp_Files ( f_Chemin ) ;
                        //Suppression du repertoire une foi tous les fichiers du repertoire supprimés
                        //Increment la barre de progression
                        SendMessage ( hwndProgressBar , PBM_STEPIT , 0 , 0 ) ;
                        RemoveDirectory ( f_Chemin ) ;
                        //MessageBox ( NULL, f_Chemin , "Supression rep" , NULL ) ;

                    // reviens un repertoire en arriere
                    int j = strlen ( f_Chemin ) - 2 ;
                    while ( j > 0 )
                    {
                        if ( f_Chemin [ j ] == '\\' )
                        {
                            f_Chemin [ j+1 ] = '\0' ;
                            break ;
                        }
                        j -- ;
                    }
                }
                else // ce n'est pas un répèrtoire donc le fichier est supprimé
                    sprintf ( f_Chemin , "%s%s" , f_Rep , wData.cFileName ) ;
                    DeleteFile ( f_Chemin ) ;

            }
        } while ( FindNextFile ( f_Find , &wData ) ) ;
    }
    FindClose( f_Find );




}
//---------------------------------------------------------------------------








/***********************************************************************

FONCTION:
  WndProc

BUT:
  Fonction qui va recevoire les messages envoyes a la fenetre.

***********************************************************************/
LRESULT CALLBACK WndProc ( HWND f_hwnd , UINT f_msg , WPARAM f_wParam ,
                          LPARAM f_lParam )
{
        switch ( f_msg )
        {
                // Add cases such as WM_CREATE, WM_COMMAND, WM_PAINT if you don't
                // want to pass these messages along for default processing.

                //Lorsque l'utilisateur ferme la fenêtre via le menu système
                case WM_CLOSE : //Envoi le message pour quitter le programme
                DestroyWindow ( f_hwnd ) ;
                return 0 ;


                //Lors de la destruction de la fenetre
                case WM_DESTROY : //Optionnel
                PostQuitMessage ( 0 ) ;
                return 0 ;
        }

 return DefWindowProc ( f_hwnd , f_msg , f_wParam , f_lParam ) ;
}
//---------------------------------------------------------------------------





/*
//---------------------------------------------------------------------------
// Fonction pour récupérer le msg d'erreur
// Récupère le numero de l'erreur, message associé et log dans un fichiet log
// avec un commentaire passé en argument.
// Le fichier de log est transmit immédiatement apres ecriture sur un FTP
void fError_Msg ( DWORD f_Error_Num ,	       // Numéro de l'erreur renvoye pas la dernière operation
	 char f_Msg_Log [1024] )                // Message d'erreur a mettre ds le fichier log
{
// Déclaration et initialisation des variables
 LPVOID f_Msg_Buffer ; //Necessaire à FORMAT_MESSAGE_ALLOCATE_BUFFER
 FILE * log ;

 // Ouverture du fichier en mode ajout
 log = fopen ( "c:\\intranex.log" , "a" ) ;

 // Récupération du message d'erreure
 FormatMessage ( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM , NULL , f_Error_Num , MAKELANGID ( LANG_NEUTRAL , SUBLANG_DEFAULT ) , (LPTSTR) &f_Msg_Buffer ,NULL , NULL ) ;

 // Ecriture du message d'erreur dans le fichier
 fprintf ( log , "Erreur %d, %s\n%s\n\n\n" , f_Error_Num , f_Msg_Buffer , f_Msg_Log) ;

 // Libération des objects
 LocalFree( f_Msg_Buffer ) ;
 fclose ( log ) ;
}
//---------------------------------------------------------------------------
*/

Conclusion

Si vous avez des idées de choses à rajouter dans ce programme qui a pour vocation de remettre en état n'importe quel poste qi rencontre de pb de navigation internet avec IE.

Si certain peuve le tester sur win 9x Merci de me tenire au courant.
 

Commentaires et avis

signaler à un administrateur
Commentaire de Gendal67 le 17/12/2004 22:46:19

"Source en reponse à une demande du forum
Developpé avec Borland c++ builder"  <<< tu m'expliques en quoi le dévelloppement sous Borland Builder va aider qui que se soit à programmer ??

signaler à un administrateur
Commentaire de BruNews le 17/12/2004 23:13:51 administrateur CS

Pour une fois qu'on voit une source sur Borland qui soit vraiment CODEE, faudrait en retenir l'url pour la mointrer a ceux qui ne font que du prefabrique et ainsi leur indiquer qu'ils peuvent imiter.
1 bon point a yserver.

signaler à un administrateur
Commentaire de Gendal67 le 18/12/2004 08:52:29

tu te donnes encore la peine de regarder des sources Builder BruNews ? lol, tu m'épate la! :-)
bonne journée à tous ! ++

signaler à un administrateur
Commentaire de yserver le 18/12/2004 11:53:10

Bonjours a tous,
Je vois pas ou est le pb de borland
On peut faire du c++ sous borland tout comme avec dev c++ ou visual studio.
Borland permet effectivevement de faire des appli tres tres rapidement en utilisant l'EDI, on a alors des appli qui marche mais on ne sait pas comment.
Mais l'environnement fourni surtout un ensemble d'outil dans une interface claire et bien pense, tres agreable qui permettre de coder facilement.

signaler à un administrateur
Commentaire de Thomas46 le 18/12/2004 12:27:22

C'est que généralement faut des dll pour les appli en borland et c'est un autre système pour j'sais plus quoi^^
Et généralement ceux qui utilisent borland builder ils codent même pas c'est du préfabriqué comme dit brunews.
Mais ta source c'est pas du préfab^^ elle est bien c'est vraiment codé pour reprendre ce qu'à dit brunews

signaler à un administrateur
Commentaire de yserver le 18/12/2004 12:55:39

Pas besoin de dll poiru les appli compile avec borland, suffit de configur le compilo comme il faut.

Effectivement par certain aspect Borland ressemble a Visual basic mais c'est avant tout un EDI tres pratique a utilisé.

signaler à un administrateur
Commentaire de crash.8 le 12/01/2005 11:26:57

Pour configurer Builder 6 sans les dll, il faut déactiver les packages et le lieur dynamique.

signaler à un administrateur
Commentaire de chasse18 le 18/04/2005 11:44:35

j'aimerai apporter quelques info, borland n'est pas comme on pourrait le croire un simple IDE pour les nuls car la pluspart des grandes entreprise de service proposant du dévéloppement à grande échelle utilise borland car ses fonctions sont beaucoup plus étendu que dev ou vs . je parle en connaissance car j'utilise Visual Studio .Net j'ai utilisé Dev C++ et j'ai appris à coder à L'IUT sous Borland.
Pour finir j'ai l'intention de laisser VS.Net pour passer sous Borland CSharp Builder.

Amicalement chasse18

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,608 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.