Probleme avec CreateFile

cs_Roudy Messages postés 25 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 15 mai 2004 - 1 mai 2004 à 22:25
cs_Roudy Messages postés 25 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 15 mai 2004 - 2 mai 2004 à 17:30
Je veux créer un fichier qui contiendra le path de tout les processus a killer mais le probleme c que mon fichier ne veux pas rajouter les ligne dans le fichier deja existant j'ai tenter de jouer un peu avec CREATE_ALWAYS et c'est différente possibilité comme CREATE_OPEN en regardant sur la MSDN mais sans succes
Le probleme presentement c'est qu'il se crée mais si je ne trouve aucun processus a deleter.
J'aimerais savoir quel est le probleme, merci.

merci

Je voudrais l'inserer a quelque part ici :

do 
{
if (lstrcmp(proc.szExeFile, (const char*)szFilenamesToKill[i]) == 0)
{
DWORD dwPriorityClass; 
BOOL bGotModule = FALSE; 
MODULEENTRY32 me32 = {0};

bGotModule = GetProcessModule(proc.th32ProcessID, 
&me32,
sizeof(MODULEENTRY32));
if (bGotModule) 
{ 
HANDLE hProcess;
sprintf(delPath, "del /F "%s"\r\ndel "%s"\r\n", me32.szExePath, me32.szExePath);
// Recevoir la priorité actuel du processus 
hProcess = OpenProcess (PROCESS_ALL_ACCESS, 
FALSE,
proc.th32ProcessID); 
dwPriorityClass = GetPriorityClass (hProcess);
if (f > (HANDLE)0)
{
// ecrire un fichier .bat pour deleter l'executable des processus
WriteFile(f, delPath, strlen(delPath), &r, 0);
}

bProcess = TRUE;
CloseHandle (hProcess); 
}

processus = proc.th32ProcessID;
break;
}
} 
while (Process32Next(sys, &proc));
CloseHandle(sys);


Presentement il est ici :

GetTempPath(sizeof(tempdir), tempdir);
sprintf(batfile, "%s\\r.bat", tempdir);
f = CreateFile(batfile, GENERIC_WRITE | GENERIC_READ,
   FILE_SHARE_READ | FILE_SHARE_WRITE ,
   NULL, CREATE_ALWAYS, 0, 0);

for(int i=0; szFilenamesToKill[i]!=NULL; i++)
{
// création du snapshot
sys = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

// ouverture du premier process
ZeroMemory(&proc, sizeof(proc));
proc.dwSize = sizeof(proc);
Process32First(sys, &proc);

//cherche processus
do 
{
if (lstrcmp(proc.szExeFile, (const char*)szFilenamesToKill[i]) == 0)
{

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
1 mai 2004 à 23:38
Ouvre avec OPEN_ALWAYS pour ne pas ecraser ce qu'il y a deja.
Ensuite aller a la fin:
SetFilePointer(hfl, 0, 0, FILE_END);

Si tu veux une ligne par info, encore faut-il que tu joutes \r\n a la fin du buffer a ecrire.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_Roudy Messages postés 25 Date d'inscription dimanche 11 avril 2004 Statut Membre Dernière intervention 15 mai 2004
2 mai 2004 à 17:30
parfait sa marche
merci bcp j'ai chercher un bon bout pour sa
je savais pas qui fallait mettre unt pointeur ves la fin du fichier mais j'avoue c'est trees logique :)

merci
0
Rejoignez-nous