Конференция "WinAPI" » Как заставить GUI thread создать нужное мне окно?
 
  • Leonid Troyanovsky © (24.11.09 15:13) [0]
    Хочется, чтобы GUI thread (моего процесса или
    чужого) создал нужное мне окно (ThreadID есть).

    Это окно буду пользовать для исполнения нужного мне
    кода в контексте этого потока путем обработки сообщений,
    посланных через SendMessage (отправлять умею).

    Доступа к исходникам этого приложения у меня нет,
    но мой код не вредоносный (мамой клянусь), бо,
    это скины всяки-разны, собс-ручный маршаллинг
    и проч. фигня (подробности могу почтой).

    Прошу уважаемую общественность пнуть мну
    в нужном направлении, бо облазив весь гугль
    натыкался лишь на сомнительные варианты с debug API.

    Печенкой чую, что искомое где-то рядом,
    но, наверное, позабыл как его звать.

    --
    Regards, LVT.
  • Игорь Шевченко © (24.11.09 15:55) [1]
    как делает back orifice ?
  • DVM © (24.11.09 16:16) [2]

    > Leonid Troyanovsky ©

    Если коротко, нужно создать окно с требуемыми характеристиками в потоке чужого процесса?
  • Leonid Troyanovsky © (24.11.09 16:25) [3]

    > Игорь Шевченко ©   (24.11.09 15:55) [1]

    > как делает back orifice ?

    Ну, вроде того :)

    Так и Джеф Рихтер делал, окно в проводнике, ЕМНИП.

    --
    Regards, LVT.
  • Leonid Troyanovsky © (24.11.09 16:31) [4]

    > DVM ©   (24.11.09 16:16) [2]

    > Если коротко, нужно создать окно с требуемыми характеристиками
    > в потоке чужого процесса?

    Ну, да :)
    Я даже стили некоторые знаю, message-only.

    Решил, вот, выправить кривой топик.
    А то, может, и,  впрямь, высокомерен был.

    --
    Regards, LVT.
  • Leonid Troyanovsky © (24.11.09 16:34) [5]
    Всем участникам спасибо!

    Проблема решилась:
    http://pda.delphimaster.net/?id=1258675071&n=5

    Будет время, направлю в фак какой-нить.

    --
    Regards, LVT.
  • Anatoly Podgoretsky © (24.11.09 16:43) [6]
    > Leonid Troyanovsky  (24.11.2009 16:25:03)  [3]

    И молчит?
  • Игорь Шевченко © (24.11.09 17:47) [7]
    Leonid Troyanovsky ©   (24.11.09 16:25) [3]


    > Так и Джеф Рихтер делал, окно в проводнике, ЕМНИП.


    Не, он сообщения ему отсылал, чтобы иконы упорядочить. Окон он не создавал.
  • Игорь Шевченко © (24.11.09 17:50) [8]
    Leonid Troyanovsky ©   (24.11.09 16:25) [3]


    > > как делает back orifice ?
    >
    > Ну, вроде того :)


    Так исходники в сети есть - он не так просто делает, как кажется поначалу.
  • Leonid Troyanovsky © (24.11.09 18:15) [9]

    > Anatoly Podgoretsky ©   (24.11.09 16:43) [6]

    > И молчит?

    Не, он отписался еще в третьем издании.
    Но, я ту книгу давно утратил, сейчас где-нибудь поищу.


    > Игорь Шевченко ©   (24.11.09 17:47) [7]

    > Не, он сообщения ему отсылал, чтобы иконы упорядочить. Окон
    > он не создавал.

    Игорь, если книга под рукой, посмотри, плиз,
    а то опять буду думать, что напутал.

    --
    Regards, LVT.
  • Leonid Troyanovsky © (24.11.09 18:18) [10]

    > Игорь Шевченко ©   (24.11.09 17:50) [8]

    > Так исходники в сети есть - он не так просто делает, как
    > кажется поначалу.

    С вертолета, танка - это все неспортивно :)

    Ну, ладно, как доделаю, кину сюда, если никто не против.

    --
    Regards, LVT.
  • Игорь Шевченко © (24.11.09 19:27) [11]
    Leonid Troyanovsky ©   (24.11.09 18:15) [9]

    >
    > Игорь, если книга под рукой, посмотри, плиз,
    > а то опять буду думать, что напутал.


    "Внедрение DLL с помощью ловушек", страница 537
    Рихтер, Windows для профессионалов, 4-ое издание
  • Leonid Troyanovsky © (24.11.09 19:53) [12]

    > Игорь Шевченко ©   (24.11.09 19:27) [11]

    > "Внедрение DLL с помощью ловушек", страница 537

    Т.е., окна в проводнике он не создавал?

    --
    Regards, LVT.
  • Игорь Шевченко © (24.11.09 21:47) [13]
    Leonid Troyanovsky ©   (24.11.09 19:53) [12]

    Рихтер описывает внедрение DLL в чужой процесс
    При этом он (в четвертом издании):
    1. сохраняет позиции икон на рабочем столе.
    2. создает список всех DLL загруженных чужим процессом.

    примеров создания окон в проводнике в этой главе (22) нет :)

    В третьем издании он разворачивает окно Program Manager, когда закрыто последнее пользовательское приложение и тоже создает список DLL чужого процесса.
  • Leonid Troyanovsky © (24.11.09 22:13) [14]

    > Игорь Шевченко ©   (24.11.09 21:47) [13]

    > примеров создания окон в проводнике в этой главе (22) нет

    Вот, опять :(
    Казалось ведь, что хорошо помнилось.
    Sorry.

    Т.е., ДР тут ни причем.

    А может второе издание? :)

    --
    Regards, LVT.
  • Игорь Шевченко © (24.11.09 22:15) [15]
    Leonid Troyanovsky ©   (24.11.09 22:13) [14]

    Во втором издании гарантировано не было проводника :) Третье издание относится к Windows 95 и Windows NT 3.5
  • Leonid Troyanovsky © (24.11.09 22:29) [16]

    > Игорь Шевченко ©   (24.11.09 22:15) [15]

    > Во втором издании гарантировано не было проводника :)

    Всё-всё, сдаюсь.

    Значит, back orifice only.

    Противно.
    Хотя, по-крайней мере, знаем, откуда ноги растут :)

    --
    Regards, LVT.
  • Игорь Шевченко © (24.11.09 22:35) [17]
    Leonid Troyanovsky ©   (24.11.09 22:29) [16]

    Рихтер много рассказывает о путях внедрения, через AppInit_DLL, через хуки, через CreateRemoteThread, но примеры только те, что я перечислил :)
  • Leonid Troyanovsky © (24.11.09 22:51) [18]

    > Игорь Шевченко ©   (24.11.09 22:35) [17]

    >  через хуки, через CreateRemoteThread, но примеры только
    > те, что я перечислил :)

    Да, давненько я не брал в руки шашки.
    Т.е., мелкие тексты - в инете, а крупнее - в ебук.

    Как в том анекдоте: мелкую рыбу отпускаем,
    а крупную - складываем в майонезную банку.

    --
    Regards, LVT.
  • Eraser © (25.11.09 00:38) [19]
    если интересует готовая реализация на делфи, то вот http://www.wasm.ru/author.php?author=Ms-Rem
 
Конференция "WinAPI" » Как заставить GUI thread создать нужное мне окно?
Есть новые Нет новых   [134431   +15][b:0][p:0.001]