Когда процесс winword открывает файл и хочет выполнить операцию «сохранить как», я хочу отказаться от операции «сохранить как», если файл будет сохранен в другой каталог。
я хочу использовать C ++ через API-хук , как я могу сделать?
Зависит от того, что если вы хотите подключить внешний процесс, вам нужно сначала попасть в адресное пространство этого процесса, например, (DLL инъекция). Затем вам нужно точно знать, какую функцию API использует этот процесс для выполнения такой задачи, как сохранение файла, чтобы иметь возможность перехватить правильный файл.
После всех этих шагов, я предлагаю использовать объезды подключить функции API. например:
typedef void savefunc_t(const char *fn); // api function prototype
savefunc_t *original_savefunc;
void savefunc_hook(const char *fn)
{
if(strstr(fn, "dir")) // check path and deny if otherwise execute original func
return;
original_savefunc(fn);
}
DetourFunction(DesiredFunctionPointer, savefunc_hook);
Других решений пока нет …