API

Тема в разделе "WASM.WIN32", создана пользователем nn999, 22 сен 2008.

  1. nn999

    nn999 New Member

    Публикаций:
    0
    Регистрация:
    22 сен 2008
    Сообщения:
    5
    Какая есть API что бы получить хэндл главного окна своего процесса?
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    EnumWindows, GetWindowThreadProcessID

    P.S когда же люди гуглом научатся пользоваться?
     
  3. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    А что такое главное окно своего процесса?

    Простите, вы о чем?
     
  4. nn999

    nn999 New Member

    Публикаций:
    0
    Регистрация:
    22 сен 2008
    Сообщения:
    5
    гуглом искал не нашел

    то которое видно на экране что бы на нем можно было рисовать
     
  5. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    nn999
    Нужно его просто не терять при его создании ;)
    Как только отработал CreateWindowEx, сразу клади в переменную результат из ЕАХ.
     
  6. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    DEEP
    Там может же быть и внедрение. ;)
     
  7. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    del
    ответ во 2м посте имхо
     
  8. nn999

    nn999 New Member

    Публикаций:
    0
    Регистрация:
    22 сен 2008
    Сообщения:
    5
    как раз внедрение и есть, вроде как раньше была какая-то апи одна что бы получить хэндл главного окна процесса, теперь не могу вспомнить

    на счет этой функции, это вообще не то

    The GetWindowThreadProcessId function retrieves the identifier of the thread that created the specified window and, optionally, the identifier of the process that created the window. This function supersedes the GetWindowTask function.
     
  9. kero

    kero Модератор SOURCES & 2LZ Команда форума

    Публикаций:
    0
    Регистрация:
    4 апр 2006
    Сообщения:
    1.074
    Адрес:
    Москва
    :)
    Ответ? А почитайте вот эту старую ветку: Дескриптор главного окна из HINSTANCE
     
  10. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    Booster
    ну, дыкъ, написано же "своего"...

    тогда, м.б. EnumThreadWindows?
    по идее, первым должно идти самое главное-заглавное окно данного потока.
     
  11. nn999

    nn999 New Member

    Публикаций:
    0
    Регистрация:
    22 сен 2008
    Сообщения:
    5
    не подойдет думаю, т.к. не известен ид потока который создал это окно.
     
  12. nn999

    nn999 New Member

    Публикаций:
    0
    Регистрация:
    22 сен 2008
    Сообщения:
    5
    Вроде как проблема решана с помощью EnumWindows и GetWindowThreadProcessID, но получается несколько хэндалов для одного процесса
     
  13. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    Если процесс создает два не-child окна, они равноправны и никто из них не является главным.
     
  14. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    GoldFinch
    Неправда. Одно из из них может являться owner'ом, а другое owned.
     
  15. mc black

    mc black Member

    Публикаций:
    0
    Регистрация:
    19 янв 2005
    Сообщения:
    213
    Адрес:
    Russia, N.Novgorod
    Так разве нельзя HWND при создании первого окошка сохранить где-нибудь в общедоступном месте? Будьте проще.