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

Гайд Как детектить любое окно в свёрнутом \ полноэкранном режиме.

  • Автор темы Автор темы Dmitrrr
  • Дата начала Дата начала
  • Теги Теги
    c++
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
9 Фев 2021
Сообщения
179
Реакции
93
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Недавно я решил написать программу которая будет детектить окно на действительность.
Код:
Expand Collapse Copy
int main()
{
    string path; // инициализируем стр. переменную, да по)(уй просто спасти

    while (true) {

        DWORD pid;
        GetWindowThreadProcessId(GetForegroundWindow(), &pid);
        HANDLE hProc = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
            FALSE, pid);
        char name[256];
        if (GetProcessImageFileName(hProc, name, 256));

        if (GetAsyncKeyState(VK_MBUTTON) & 0x01) {
             path = name;

        }

        // cout << path << endl;

        if (name == path) Beep(1000, 70); // если мы сейчас находимся в нужном окне

        Sleep(200);
    }

}
Проверяет не само наличие открытого окна, а именно в каком окне ты сейчас. Написал за 30 минут решил поделиться кодом.
 
Недавно я решил написать программу которая будет детектить окно на действительность.
Код:
Expand Collapse Copy
int main()
{
    string path; // инициализируем стр. переменную, да по)(уй просто спасти

    while (true) {

        DWORD pid;
        GetWindowThreadProcessId(GetForegroundWindow(), &pid);
        HANDLE hProc = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
            FALSE, pid);
        char name[256];
        if (GetProcessImageFileName(hProc, name, 256));

        if (GetAsyncKeyState(VK_MBUTTON) & 0x01) {
             path = name;

        }

        // cout << path << endl;

        if (name == path) Beep(1000, 70); // если мы сейчас находимся в нужном окне

        Sleep(200);
    }

}
Проверяет не само наличие открытого окна, а именно в каком окне ты сейчас. Написал за 30 минут решил поделиться кодом.

Это хорошо но зачем все усложнять когда это делается в 4 строки?
 
1659778397573.png

1659778415652.png

мужик, ты чего
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Если это не рофл то я голову ща разобью себе об стол. Потому что я искал ответ неделю...
2022-08-06_12-39-52.png

АХза иак выводит херь не понятную ваще. А мой выводит именно имя окна и т д
 
Если это не рофл то я голову ща разобью себе об стол. Потому что я искал ответ неделю...

Посмотреть вложение 215588
АХза иак выводит херь не понятную ваще. А мой выводит именно имя окна и т д
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Недавно я решил написать программу которая будет детектить окно на действительность.
Код:
Expand Collapse Copy
int main()
{
    string path; // инициализируем стр. переменную, да по)(уй просто спасти

    while (true) {

        DWORD pid;
        GetWindowThreadProcessId(GetForegroundWindow(), &pid);
        HANDLE hProc = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
            FALSE, pid);
        char name[256];
        if (GetProcessImageFileName(hProc, name, 256));

        if (GetAsyncKeyState(VK_MBUTTON) & 0x01) {
             path = name;

        }

        // cout << path << endl;

        if (name == path) Beep(1000, 70); // если мы сейчас находимся в нужном окне

        Sleep(200);
    }

}
Проверяет не само наличие открытого окна, а именно в каком окне ты сейчас. Написал за 30 минут решил поделиться кодом.
Код:
Expand Collapse Copy
char wnd_title[128];
    HWND menu = GetForegroundWindow();
    GetWindowText(menu, wnd_title, sizeof(wnd_title));
    return wnd_title;
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
видимо кто то щас разобьет голову об стол
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Если это не рофл то я голову ща разобью себе об стол. Потому что я искал ответ неделю...

Посмотреть вложение 215588
АХза иак выводит херь не понятную ваще. А мой выводит именно имя окна и т д
Во первых чему вы удивляетесь, когда вы сами используете GetForegroundWindow для получения окна верхнего уровня.
Во вторых GetProcessImageFileName вернет вам имя образа а не имя окна.
DWORD pid;
GetWindowThreadProcessId(GetForegroundWindow(), &pid);
HANDLE hProc = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
FALSE, pid);
В третьих GetWindowThreadProcessId вернет вам thread id а не process id.
В четвертых GetWindowThreadProcessId вернет вам скорее всего thread id dwm, нежели породившего процесса.
1660259796547.png
 
Последнее редактирование:
Недавно я решил написать программу которая будет детектить окно на действительность.
Код:
Expand Collapse Copy
int main()
{
    string path; // инициализируем стр. переменную, да по)(уй просто спасти

    while (true) {

        DWORD pid;
        GetWindowThreadProcessId(GetForegroundWindow(), &pid);
        HANDLE hProc = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
            FALSE, pid);
        char name[256];
        if (GetProcessImageFileName(hProc, name, 256));

        if (GetAsyncKeyState(VK_MBUTTON) & 0x01) {
             path = name;

        }

        // cout << path << endl;

        if (name == path) Beep(1000, 70); // если мы сейчас находимся в нужном окне

        Sleep(200);
    }

}
Проверяет не само наличие открытого окна, а именно в каком окне ты сейчас. Написал за 30 минут решил поделиться кодом.

Дополню пост выше, в 4х вы судя по всему в полнейшем ауте если постите такой SHIT :CoolCat:
 
Назад
Сверху Снизу