Accueil > > > SUPPRESSION FICHIER TEMP [DEMANDE FORUM]
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.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
[FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLETECHDAYS PARIS 2012 : SYSTEM CENTER SERVICE MANAGER 2012 VUE D'ENSEMBLE par ROMELARD Fabrice
Speakers: Julien Marechal, Gautier Confiant, Sébastien MEYER La session débute par le positionnement de la solution System Center par rapport aux concepts d'organisation ITIL. Le portail du catalogue de se...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice TECHDAYS PARIS 2012 : PLEINIèRE SECOND JOURTECHDAYS PARIS 2012 : PLEINIèRE SECOND JOUR par ROMELARD Fabrice
Après une première journée dédiée aux développeurs, cette seconde journée est dédiée au monde des entreprises et de ses applications. Ainsi, cette pleinière est dédiée à faire un 360 de l'évolution des applications Business aux demandes ac...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|