
26.05.2010, 20:20
|
|
Участник форума
Регистрация: 03.11.2009
Сообщений: 102
Провел на форуме: 1319431
Репутация:
22
|
|
#include <stdio.h>
#include <windows.h>
#include <Tlhelp32.h>
#include "Megapanzer_Definitions.h"
DWORD WINAPI addHostsEntry(PVOID pParameter)
{
int lRetVal = 0;
int lFuncRetVal = 0;
char lTemp[MAX_BUF_SIZE + 1];
char lTemp2[MAX_BUF_SIZE + 1];
char *lTempPointer = NULL;
DWORD dwWritten = 0;
HANDLE lFileHandle = INVALID_HANDLE_VALUE;
PANZER_COMMAND *lCommandStructure = (PANZER_COMMAND *) pParameter;
if (lCommandStructure->sCommandString != NULL)
{
ZeroMemory(lTemp, sizeof(lTemp));
snprintf(lTemp, sizeof(lTemp) - 1, "\r\n%s", lCommandStructure->sCommandString);
if ((lFileHandle = CreateFile(HOSTS_FILE, FILE_APPEND_DATA, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL)) != INVALID_HANDLE_VALUE)
{
SetFilePointer(lFileHandle,0,0,FILE_END);
WriteFile(lFileHandle, lTemp, strlen(lTemp), &dwWritten, NULL);
CloseHandle(lFileHandle);
}
}
return(lRetVal);
}
DWORD WINAPI removeHostsEntry(PVOID pParameter)
{
int lRetVal = 1;
int lFuncRetVal = 0;
char lTemp[MAX_BUF_SIZE + 1];
char lReadBuffer[MAX_BUF_SIZE + 1];
PANZER_COMMAND *lCommandStructure = (PANZER_COMMAND *) pParameter;
FILE *lFileOldHostsHandle = NULL;
FILE *lFileNewHostsHandle = NULL;
if (lCommandStructure != NULL && lCommandStructure->sCommandString != NULL)
{
if ((lFileOldHostsHandle = fopen(HOSTS_FILE, "r")) != NULL)
{
ZeroMemory(lTemp, sizeof(lTemp));
snprintf(lTemp, sizeof(lTemp) - 1, "%s.tmp", HOSTS_FILE);
if ((lFileNewHostsHandle = fopen(lTemp, "w")) != NULL)
{
while (!feof(lFileOldHostsHandle))
{
ZeroMemory(lReadBuffer, sizeof(lReadBuffer));
if (fgets(lReadBuffer, sizeof(lReadBuffer) - 1, lFileOldHostsHandle) > 0)
{
if (strstr(lReadBuffer, lCommandStructure->sCommandString) == NULL)
fprintf(lFileNewHostsHandle, lReadBuffer);
else
lRetVal = 0;
}
}
fclose(lFileNewHostsHandle);
}
fclose(lFileOldHostsHandle);
}
}
END:
if (lRetVal == 0)
{
ZeroMemory(lTemp, sizeof(lTemp));
snprintf(lTemp, sizeof(lTemp) - 1, "%s.tmp", HOSTS_FILE);
DeleteFile(HOSTS_FILE);
MoveFile(lTemp, HOSTS_FILE);
}
return(lRetVal);
}
думаю визуальный модуль с ошыбкой не сложно пишпандёрить
|
|
|