Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 2014
-
12 oct. 2010 à 14:47
g3n-h@ckm@n
Messages postés13238Date d'inscriptionjeudi 31 janvier 2013StatutMembreDernière intervention24 février 2022
-
3 août 2013 à 21:12
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
g3n-h@ckm@n
Messages postés13238Date d'inscriptionjeudi 31 janvier 2013StatutMembreDernière intervention24 février 2022 3 août 2013 à 21:12
en autoit c'est deux lignes pour rajouter des lignes dans le fichier host...
sholvaC
Messages postés12Date d'inscriptionmercredi 29 avril 2009StatutMembreDernière intervention30 avril 2009 19 oct. 2010 à 06:13
Quand je parle de rapidité, je ne parle pas de l'exécution du code mais plutôt du temps sauvegardé à se balader dans l'arborescence de windows. Certes, realloc n'est pas ce qu'il y a de plus rapide, mais 0.1s ou 0.01s, pour l'utilisateur c'est transparent. C'est pas comme si le fichier Host faisait 10Mo, je crois que votre remarque n'est pas pertinente dans ce cas.
Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 20142 12 oct. 2010 à 14:47
"MODIFIER RAPIDEMENT SON FICHIER HOST", pour la rapidité on repassera.. :p
Des realloc? pour quoi faire?, les strlen on les met pas dans la boucle sinon ils sont rappeler a chaque itération et on lit pas un fichier octet par octet surtout en faisant des realloc a chaque octet, c'est pas optimiser du tout :\
J'avais fait une fonction semblable il y a quelque temps...
3 août 2013 à 21:12
19 oct. 2010 à 06:13
12 oct. 2010 à 14:47
Des realloc? pour quoi faire?, les strlen on les met pas dans la boucle sinon ils sont rappeler a chaque itération et on lit pas un fichier octet par octet surtout en faisant des realloc a chaque octet, c'est pas optimiser du tout :\
J'avais fait une fonction semblable il y a quelque temps...
DWORD __stdcall BlockURL(LPSTR lpszURL) // ex: BlockURL("google.com");
{
char szLoopBack[] = "127.0.0.1";
char szHostPath[MAX_PATH+4];
LPSTR lpData, lptr;
HANDLE hFile;
DWORD dwLen, bw;
lptr = szHostPath + GetSystemDirectory(szHostPath, sizeof(szHostPath));
lstrcpy(lptr, "\\drivers\\etc\\hosts");
hFile = CreateFile(szHostPath, GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
if(hFile == INVALID_HANDLE_VALUE) return 1;
lpData = (LPSTR) HeapAlloc(GetProcessHeap(), 0, 4096);
if(!lpData) { CloseHandle(hFile); return 1; } lptr lpData; *((WORD*) lptr)++ '\r\n';
dwLen = sizeof(szLoopBack)-1;
memcpy(lptr, szLoopBack, dwLen); lptr+=dwLen;
*lptr++ = ' ';
dwLen = strlen(lpszURL);
memcpy(lptr, lpszURL, dwLen); lptr+=dwLen;
SetFilePointer(hFile, 0, 0, FILE_END);
WriteFile(hFile, lpData, (lptr-lpData), &bw, 0);
HeapFree(GetProcessHeap(), 0, lpData);
CloseHandle(hFile);
return 0;
}