|
|
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
Дело было так: Есть процесс, который создаёт некий ресурс. Например иконку. Есть второй процесс, с кнопкой. Дык вот BM_SETIMAGE из первого процесса во второй сказать нельзя, потому что второй процесс не имеет доступа к памяти первого: SendMessage(hBut_in2, BM_SETIMAGE, IMAGE_ICON, (long)hIcon_in1); облом. Скажите, как первому процессу дать доступ к своим ресурсам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2004, 15:56 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
Для такой мелочи наверно удобнее всего использовать WM_COPYDATA ________________________________________________________ Глюк - это высокоорганизованная система не поддающихся определению частиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2004, 16:27 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
Передать как кусок данных, а не как ресурс ________________________________________________________ Глюк - это высокоорганизованная система не поддающихся определению частиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2004, 16:28 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
Никак. У них разная память. Главное - нафига ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2004, 17:59 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
авторудобнее всего использовать WM_COPYDATA Дык, эта, тот кому это послали, должен ведь обработать это сообщение? авторНикак. Нее, всегда можно что-то сделать, даже когда кажется, что нельзя. авторГлавное - нафига ? Надо. Ааа, блин. Можно сред приаттачить. Но, ёпрст, слишком жирно для такой маленькой операции... Ок, кто что ещё придумает - пишите, я пошёл копать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.12.2004, 07:40 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
авторОк, кто что ещё придумает - пишите Что ли никто ничего не придумал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 08:39 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
CEMb авторОк, кто что ещё придумает - пишите Что ли никто ничего не придумал? Можно еще попробовать во втором процессе сделать handle=LoadLibrary(первый процесс) LoadIcon(handle,...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 09:22 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
CEMb авторудобнее всего использовать WM_COPYDATA Дык, эта, тот кому это послали, должен ведь обработать это сообщение? А WM_COPYDATA именно копирует данные из памяти одного приложения в память другого. Средствами OS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 12:01 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
MaksimМожно еще попробовать во втором процессе сделать handle=LoadLibrary(первый процесс) LoadIcon(handle,...) Не, нельзя. Нету доступа к исходникам второго процесса. MasterА WM_COPYDATA именно копирует данные из памяти одного приложения в память другого. Средствами OS. Это-то ясно. Я к тому, что если я из первого процесса делаю Код: plaintext Код: plaintext 1. 2. Или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2005, 10:19 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
Ну и обработаешь, сложно што-ли))) ________________________________________________________ Глюк - это высокоорганизованная система не поддающихся определению частиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2005, 11:54 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
Блииин, не могу я обработать, не мой процесс, нету у меня к нему доступа, вот,блин, в чём, блин, проблема, блин! Мне надо создать ресурс в памяти чужого процесса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2005, 07:18 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
другими словами: тебе нужно заставить процесс выполнить определенные действия, но сделать этого ты не можешь, потому что это невозможно :-) козьма прутков умный мужыки были, бывало говаривали нельзя объять необъятное. да помногу раз повторяли. нет. нельзя. если очень захотеть - тоже нельзя. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2005, 07:31 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
CEMbБлииин, не могу я обработать, не мой процесс, нету у меня к нему доступа, вот,блин, в чём, блин, проблема, блин! Мне надо создать ресурс в памяти чужого процесса. Ага, а использовать этот ресурс этот процесс как будет ? Кто его заставит ? Короче, либо просто редактором ресурсов положи этот ресурс в этот модуль ( статичное решение), либо надо внедряться в пространство того процесса (это сложно), но как заставить его использовать этот ресурс - не понятно. Как внедряться - написано в книге Джефри Рихтера и есть на www.rsdn.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2005, 12:45 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
alex_kно сделать этого ты не можешь, потому что это невозможно :-) Вот тут ты не прав :) Во-первых. Я заставить это делать я его смог сразу. Просто ресурс был не тот, так как загрузить было неоткуда. Во-вторых. Оффтоп. Нет ничего невозможного. Если поставить себе это за принцип, можно много сделать. Например нахождение максимума без операции сравнения или полноценное прозрачное окно под WINDOWS<=0x400 К тому же, у меня есть программа(рассширение которой и повлекло этот вопрос). Которая очень хорошо умеет лезть в чужие окна. Как спай. Тока спай смотрит, а моя может менять. Оффтоп: это не хакерство, это надо было по работе, были ситуации, когда надо было проэмулировать некоторые действия окон при некоторых состояниях. А поднять эти окна - долгая/нудная песня. И чтобы каждый раз для одного шага теста не гонять весь проект, была написана полупрога для работы с окнами. Теперь вот понадобились ресурсы. МастерКак внедряться - написано в книге Джефри Рихтера и есть на www.rsdn.ru Спасиб! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 07:34 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
Ключевые слова HICON; поиск и загрузка ресурсов; LoadResource; LockResource; LoadIcon; сомнение; гипотеза Кажись должно быть осуществимо все-же, ведь в трей суют и вообще... А точно ли что это существенно, что у этих двух процессов разная память? Я сам не попробовал, но мне кажется что это тут рояля не играет. Не а глобальной ли памяти виндовые хенделы сидят? - помоему так и есть. Не может ли вся фигня быть в том, что при использовании некоторых способов загрузки (к которым все привыкли) они автоматом выгружаются после окончания процесса? Уточните - какой функцией грузите иконку? см. также /topic/14640&hl=hicon http://www.sql.ru/forum/actualsearch.aspx?search=HICON&a=&ma=0&bid=0&dt=-1&s=1&so=1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 12:13 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
MKV А точно ли что это существенно, что у этих двух процессов разная память? по определению у двух процессов разное адресное пространство, каждому выделено по по 4 Гб вирт памяти, правда тока для Win2000 и выше соответственно, а в 98 и 95 все процессы включая системные разделяли одну область виртуальной памяти,поэтому все и падало... ((: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 15:29 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
Адресное пространство разное, но биты иконки разве сидит в адресном пространстве процесса? Не располагаются ли ее биты в адресном пространстве ОС? То есть когда мы вызываем LoadIcon, то биты засасывает ОС, а наружу выдают хендел HICON - вроде так было бы логично. Если все так, то сценарий описанный CEMb вполне должен работать. Мы сообщаем через BM_SETIMAGE хендел иконки, и вообще вся работа идет через хенделы, а память реальная в адресном пространстве ОС. Меня смущает вот в этом утверждении CEMb BM_SETIMAGE из первого процесса во второй сказать нельзя, потому что второй процесс не имеет доступа к памяти первого: SendMessage(hBut_in2, BM_SETIMAGE, IMAGE_ICON, (long)hIcon_in1); такой момент - а чем hBut_in2 принципиально отличается от hIcon_in1 в плане памяти и процессов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 16:15 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 16:20 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
да, раз иконка в том, где ресурс загружали, то кисляк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 17:01 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
Вобщем-то можно открыв процесс с помощью OpenProcess и получив доступ к памяти с помощью VirtualAllocEx (нужны привелегии), можно попытаться подсунуть свою иконку в память другого процесса... ________________________________________________________ Глюк - это высокоорганизованная система не поддающихся определению частиц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 18:07 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
CEMbБлииин, не могу я обработать, не мой процесс, нету у меня к нему доступа, вот,блин, в чём, блин, проблема, блин! Мне надо создать ресурс в памяти чужого процесса. об этом уже упомяналось... MasterZiv Ага, а использовать этот ресурс этот процесс как будет ? Кто его заставит ? Короче, либо просто редактором ресурсов положи этот ресурс в этот модуль ( статичное решение), либо надо внедряться в пространство того процесса (это сложно), но как заставить его использовать этот ресурс - не понятно. Как внедряться - написано в книге Джефри Рихтера и есть на www.rsdn.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2005, 18:18 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
На счёт разделённости ресурсов по процессам. Делался такой тест: Создавался фонт. Брался ДС окна, и туда селектился фонт, с сохранением старого. Если всё это применять на родные окна, то фонт устанавливается, старый сохраняется, и потом восстанавливается. Если тоже самое делать с чужим окном - старый фонт с селектобжект возвращается _ненулевой_, новый-свой не устанавливается - в окне стандартный системный(страшноквадратный). Старый фонт восстанавливается. Стало быть, хэндлы указывают на разные куски памяти... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 07:53 |
|
||
|
Ресурсы
|
|||
|---|---|---|---|
|
#18+
MasterZivлибо надо внедряться в пространство того процесса (это сложно), но как заставить его использовать этот ресурс - не понятно Внедрившись можно какое-нибудь окно отсабклассить, и при каком-то событии сделать дополнительные вещи (BM_SETIMAGE ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 12:43 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=418&tid=2033838]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 225ms |
| total: | 374ms |

| 0 / 0 |
