Дополнен 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(путь))
Дополнен 17 лет назад
Ну чё за фигня опять небыло видно только аж теперь когда дополнил...