Дополнен 17 лет назад
....
staticBOOLbDHook = TRUE;
....
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
hInst = hModule;
Initcondition();
if (bDHook == TRUE)
{
bDHook = FALSE;
DataHook();
}
....
void DataHook(void)
{
static char lpDLLName[MAX_PATH], lpTEMName[MAX_PATH];
/* получаем полный адрес к нашему модулю */
GetModuleFileName((HMODULE)hInst, lpDLLName, MAX_PATH);
/* а етой манипуляцыей получаем папку в котором наш модуль */
strncat(lpDATName, lpDLLName, strlen(lpDLLName) - strlen("Hook.dll"));
/* дополняем папку Data */
strcat(lpDATName, "Data\\");
/* ну а здесь создаём имя временого файда */
GetTempFileName(lpDATName, "_", 0, lpTEMName);
/* соединяем ето всё */
strcat(lpDATName, lpTEMName);
MessageBox(NULL, lpDATName,"MessageBox",MB_OK);
}
Не работает етот кусок:
if (bDHook == TRUE)
{
bDHook = FALSE;
DataHook();
}
Переменая bDHook получила значение FALSE почему у миня
DataHook(); продолжатет вызыватса.. Ет што получаетса
библиотека выгружаетса све переменые пропадаю, потом
загружаетса и bDHook опять TRUE
(та вродибы не должно быть так яже постояно
отслежываю нажатия кнопок для Internet Explorer)
Ещё маленький вопрос какая "API" создаёт папку..
(в Visual Basic пользовалса встроеной MkDir(путь))