ASI Arizona SkipDeviceSelection

Winstаl

Известный
Автор темы
1,002
414
Версия SA-MP
  1. Любая
В последнем обновлении на ARIZONA RP было переведено окно «Device Selection», появляющееся при игре с 2+ мониторами, на русский язык, в результате чего старый плагин, позволяющий «проскипать» его, перестал работать, так как искал это окошко именно по названию.

Данный плагин, по сути, является тем же самым, что и оригинальный, только учитывает и старое, и новое название окна.
C++:
#include <windows.h>

DWORD WINAPI PluginThread( LPVOID ) {
    HWND WindowA{ nullptr };
    const char *TitlesWindowA[]{ "Device Selection", "Выбор устройства" };
    while ( !WindowA ) {
        for ( auto title : TitlesWindowA ) {
            WindowA = FindWindowA( 0, title );
            if ( WindowA ) break;
        }
    }
    PostMessageA( WindowA, WM_KEYDOWN, VK_RETURN, 0 );
    return 0;
}

BOOL WINAPI DllMain( HMODULE hModule, DWORD dwReason, LPVOID lpReserved ) {
    if ( dwReason == DLL_PROCESS_ATTACH ) CreateThread( 0, 0, &PluginThread, 0, 0, 0 );
    return TRUE;
}
 

Вложения

  • SkipDeviceSelection.asi
    7 KB · Просмотры: 48

SR_team

like pancake
BH Team
4,917
6,616
Ты можешь ничего не искать по имени в цикле - она создается через функцию DialogBoxParamA, и это единственное, для чего игра использует виндовые диалоги. Можно подстваить свой обработчик (предпоследний параметр) и сразу отправить сообщение с IDOK.

Или еще проще - в папке с настройками (Мои документы -> GTA San Andreas User Files) создать файл device_remembered.set и записать в него 1 через блокнот