Получение иконки окна WinAPI

Тема в разделе "WASM.WIN32", создана пользователем mazik7512, 2 май 2023.

  1. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Есть подозрение, что вместо ICONINFO вы получили PyBITMAP, то есть обертку над BITMAP (не путать с хендлом HBITMAP).
    Ищите способ получить именно ICONINFO и HBITMAP из ICONINFO.
    Вот это похоже на код ваших оберток:
    https://github.com/mhammond/pywin32/blob/main/win32/src/win32gui.i
     
  2. mazik7512

    mazik7512 New Member

    Публикаций:
    0
    Регистрация:
    22 окт 2022
    Сообщения:
    9
    Я знаю, что получил PyBitmap, я писал об этом выше. Проблема как раз в том, что я не могу оттуда получить, я даже ссылку в сообщении прикладывал (правду не эту, а на документацию).
     
  3. Thetrik

    Thetrik UA6527P

    Публикаций:
    0
    Регистрация:
    25 июл 2011
    Сообщения:
    875
    Ну это значит у тебя проблема с оберткой. IONINFO содержит именно хендлы, которые можно передавать в GetDIBits.
     
  4. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    Ну так используй PyBitmap::GetBM(), чтобы получить сырой указатель на BITMAP.
     
  5. mazik7512

    mazik7512 New Member

    Публикаций:
    0
    Регистрация:
    22 окт 2022
    Сообщения:
    9
    Код (Text):
    1. AttributeError: 'PyBITMAP' object has no attribute 'GetBM'.
    Боюсь вы нашли документацию к другому PyBitmap у этого такого метода нет.
    --- Сообщение объединено, 4 май 2023 ---
    К слову, тот самый чатЖопати предложил решение (правда, не с первой попытки и не без ошибок в коде), сначала создать битмап в каком-нибудь контексте, потом отрисовывать иконку по её хендлу в этот битмап и считывать с этого битмапа пиксели (через GetPixel, других функций получения битмапа в обёртке нет) в массив. Как можно догадаться за производительность этого решения он не ручается.
     
  6. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.576
    mazik7512, напишите рабочий код сначала на С++, а потом конвертируйте в питон. Хз как устроены эти либы и классы
    а чат_гпт безбожно врёт в плане винапи, путая структуры и хендлы.
     
    Mikl___ нравится это.