Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

C++ Как сделать проверку на открытие файла?

  • Автор темы Автор темы dota
  • Дата начала Дата начала
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
13 Мар 2018
Сообщения
309
Реакции
52
Вообщем, я делал проверку на откытие файла на c# так -
Код:
Expand Collapse Copy
Dim getprocessbyname() As Process

        getprocessbyname = Process.GetProcessesByName("processname")
        If getprocessbyname.Count Then
как мне сделать так же, но на с++?
 
Вообщем, я делал проверку на откытие файла на c# так -
Код:
Expand Collapse Copy
Dim getprocessbyname() As Process

        getprocessbyname = Process.GetProcessesByName("processname")
        If getprocessbyname.Count Then
как мне сделать так же, но на с++?
Ну если по названию, то используй FindWindow
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ну как тебе уже написали можно по FindWindow (но лучше не делай так)

C++:
Expand Collapse Copy
DWORD GetProcId(const char* procName)
    {
        DWORD procId = 0;
        HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

        if (hSnap != INVALID_HANDLE_VALUE)
        {
            PROCESSENTRY32 procEntry;
            procEntry.dwSize = sizeof(procEntry);

            if (Process32First(hSnap, &procEntry))
            {
                do
                {
                    if (!_stricmp(procEntry.szExeFile, procName))
                    {
                        procId = procEntry.th32ProcessID;
                        break;
                    }
                } while (Process32Next(hSnap, &procEntry));
            }
        }
        CloseHandle(hSnap);
        return procId;
    }
можешь получать PId через название процесса. (тоже не лучший вариант)
использование:
C++:
Expand Collapse Copy
GetProcId("explorer.exe");
 
ну как тебе уже написали можно по FindWindow (но лучше не делай так)

C++:
Expand Collapse Copy
DWORD GetProcId(const char* procName)
    {
        DWORD procId = 0;
        HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

        if (hSnap != INVALID_HANDLE_VALUE)
        {
            PROCESSENTRY32 procEntry;
            procEntry.dwSize = sizeof(procEntry);

            if (Process32First(hSnap, &procEntry))
            {
                do
                {
                    if (!_stricmp(procEntry.szExeFile, procName))
                    {
                        procId = procEntry.th32ProcessID;
                        break;
                    }
                } while (Process32Next(hSnap, &procEntry));
            }
        }
        CloseHandle(hSnap);
        return procId;
    }
можешь получать PId через название процесса. (тоже не лучший вариант)
использование:
C++:
Expand Collapse Copy
GetProcId("explorer.exe");
А что тогда лучший?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
А что тогда лучший?
ну раз заговорили об открытом файле, то целесообразней было бы ему сделать драйвер (если он собрался делать какой-нибудь проект) и уже в дальнейшем чекать по драйверу.
Но раз он создал такую тему, то естественно он не напишет свой драйвер, вариант для него я скинул.
 
А что тогда лучший?
Например(FindWindow): хочешь проверить открыть ли раст. Открыта окно ияка - "Rust"(Название окна) и открыта папка в проводнике под названием "Rust". А твой код подумает что открыта раст. Думаю понял что лучше.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ну если по названию, то используй FindWindow

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.


Вообщем, я делал проверку на откытие файла на c# так -
Код:
Expand Collapse Copy
Dim getprocessbyname() As Process

        getprocessbyname = Process.GetProcessesByName("processname")
        If getprocessbyname.Count Then
как мне сделать так же, но на с++?
А ну и расскажу тебе почему не стоит юзать FindWindow. Так как его легко пропатчить и он уже будет бесполезен для тебя, да пропатчить тот участок кода что кинул я тоже можно, но смысла от этого не будет.
 
Какой нахуй драйвер? Зачем он вообще здесь нужен? Какой патч блять, если кто-то захочет он тебе весь процесс в юм перепатчит, будешь потом ныть: "я же драйвер сделал, как так". Человек попросил одну лишь проверку на спп, ты ему скинул ахуенный вариант с названиями процессов - то что надо! Какие драйвера, о чем ты ебать.
 
Например(FindWindow): хочешь проверить открыть ли раст. Открыта окно ияка - "Rust"(Название окна) и открыта папка в проводнике под названием "Rust". А твой код подумает что открыта раст. Думаю понял что лучше.
класснейм для тебя какая-то шутка?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вообщем, я делал проверку на откытие файла на c# так -
Код:
Expand Collapse Copy
Dim getprocessbyname() As Process

        getprocessbyname = Process.GetProcessesByName("processname")
        If getprocessbyname.Count Then
как мне сделать так же, но на с++?
Файл на открытие твой или сторонний?
 
Назад
Сверху Снизу