Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Клонировать процесс в Windows [D5, Win2k]


Страницы:   1 2

Fktrc ©   (2005-01-13 08:07:00) 

Возможно ли это? Если да, то где про это можно прочитать?


Fktrc   (2005-01-13 11:49:00) [21]

Да, и не забыть "разморозить" оригинал :)


Fktrc   (2005-01-13 11:48:00) [22]

Что очень и очень сложно - это ясно, к примеру клон не будет иметь доступа к объектам ядра, иногда к файлам(зависит от режима открытия), и т.д., которые заняты оригиналом, все же это, хотя и полная копия, но все же отдельный от оригинала процесс.
Тот же самый клонированный ворд при попытке сохранения файла, открытого в первом как минимум вывалит ошибку, как максимум вывалится сам :)
Но было бы очень любопытно посмотреть на пример клонирования консольного Hello world. Нахватавшись верхушек, могу предположить, что для этого потребуется выделить память под код и данные, как-то заморозить все потоки клонируемого процесса, скопировать код и данные в выделенный буфер, изменить адреса согласно relocation table, если модуль окажется загружен по другому базовому адресу, установить режим доступа PAGE_EXECUTE для страниц памяти, куда у нас попадет код, и соотв. режим для страниц с данными, кучу дополнительных действий, о которых просто не в курсе, и в конце что-то типа установки EIP для клонированного процесса на ту же инструкцию, что и в оригинале.

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

Ну вот и вывалил все, что удалось разглядеть за туманом некомпетентности в этом вопросе. Хорошо бы рассеять туман...


Digitman   (2005-01-13 11:41:00) [23]


> Fktrc ©   (13.01.05 10:56) [4]


как и предполагалось, ты точно не тот огород окучивать собрался ..


> Типа у нас запущен Word


ТИПА Word или конкретно Word ?
зачем, спрашивается, "клонировать" вордовый процесс, если решение задачи сводится к простейшим действиям :
- старту нового Ворда как олей-сервера
- коннекту к уже работающему Ворду как олей-серверу
- определение текущих настроек и рабочего контекста открытых документов в "старом" Ворде
- программное воспроизведение настроек и контекстов в "новом" Ворде


Игорь Шевченко   (2005-01-13 11:06:00) [24]


>  второй ворд на экране, причем точная копия первого и даже
> курсор в том же месте текста мигает...


Это нельзя. Точнее, очень и очень сложно


Fktrc   (2005-01-13 10:56:00) [25]

Смысла нет никакого - захотелось узнать, возможно ли склонировать процесс под виндами.
Типа у нас запущен Word, мы его клонируем и хоп! второй ворд на экране, причем точная копия первого и даже курсор в том же месте текста мигает...

Тяжкие последствия вчерашнего праздника... :)


Digitman   (2005-01-13 10:42:00) [26]


> Fktrc ©   (13.01.05 10:20) [2]


каков же глубокий смысл подобного "клонирования" в Win32 ?
прокомментируй ..


Fktrc   (2005-01-13 10:20:00) [27]

2Digitman
подобие fork() из Unix


Digitman   (2005-01-13 08:52:00) [28]

что подразумевается под клонированием ?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо