Я создаю приложение для управления другими приложениями или exe-файлами на компьютере пользователя и не позволяю им получать доступ к ним в определенное время (например, функция блокировки приложения ColdTurkey).Остановка исполняемого файла exe C++
Так я пытаюсь сделать это не работает до сих пор - я попытался сделать это, открыв файл dwShareMode набор в 0, используя функциюCreateFile. Это похоже на файлы, такие как текстовые файлы, и не позволяет открыть файл, однако это не тот случай, если я попытаюсь сделать этот же подход в exe-файлах, и пользователь может открыть файл.
Я предполагаю, что файлы exe не так «читаются» Windows, как текстовый файл считывается блокнотом, а это означает, что установка dwShareMode на 0 не влияет на его открытие, однако я не знаю, что разница между ними. Любая помощь будет оценена по достоинству.
код здесь (для текстового файла):
#include <windows.h>
#include <string>
#include <iostream>
using namespace std;
int main()
{
HANDLE test;
test = CreateFile("test.txt",
GENERIC_WRITE,
0,
NULL,
CREATE_NEW,
FILE_ATTRIBUTE_NORMAL,
NULL);
cout << "press enter to stop blocking application: ";
string b;
getline(cin, b);
cout << endl;
CloseHandle(test);
return 0;
}
*** и остановить их от доступа к ним в определенное время *** Я считаю, что вы, скорее всего, придется сделать это на уровне системного драйвера. – drescherjm
Вы должны обязательно проверить значение INVALID_HANDLE_VALUE в качестве возвращаемого значения, чтобы узнать, получаете ли вы какой-либо результат ошибки. –
Обычная безопасность Windows работает на уровне файлов. Я могу думать о некоторых причинах, чтобы делать что-то взломанным способом, а не просто использовать службы ОС, но все они являются гнусной причиной. –