|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.08.2015, 10:09 | #1 |
Пользователь
Регистрация: 04.05.2012
Сообщений: 13
|
Как создать независимый процес в Delphi?
Привет! Суть такова: есть некоторое приложение, после закрытия которого необходимо изменить несколько файлов с которыми оно работает. Во время работы приложения этого сделать не возможно - они "защищены" им - пока работает приложение . Я мог бы написать отдельную тулзу для этого, но не могу по некоторым соглашениям с др. участниками проекта.
Предлагаю вариант решения: Создать отдельный, независимый, не дочерний процесс который будет выполняться после завершения приложения. Процесс который будет не зависеть от приложения. Я пробовал исполнить это потоками, но они зависят от той программы, которая его создала - после завершения программы завершался поток. Возможно ли это? Как это реализовать? В какую сторону "копать"? p.s. Может в моем приложении сделать некий дамп будущей программы которая будет делать изменения в файлах приложения, а потом собрать из него exe и запустить в памяти? Хотя, наверно на подобные действия будет "орать" антивирус... Самое потрясающее достижение программного обеспечения состоит в том, что оно способно уничтожить стабильность и любые достижения аппаратного обеспечения. (Henry Petroski)
Последний раз редактировалось hooko; 20.08.2015 в 10:18. |
20.08.2015, 11:30 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Начните отличать потоки от процессов.
Пускай ваше приложение реализует обменн данными через IPC (In-Process-Communication) и каждая копия выполняет свою задачу и передает инфу серверу: file.exe - хост file.exe -network -обмен данными по сети file.exe -render -рисование и буфферизация картинок для конечной отрисовки на хосте. таким образом пользователь видит только хост-приложение с окнами, а само приложение состояит из изолированных процессов, где каждый занят чем-то одним. Так работает например chrome. Есть рендер, есть процесс кэша, есть процесс расширений, есть для модулей. Кароче Он очень удачно и интересно спроектирован. |
20.08.2015, 12:36 | #3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
22.08.2015, 12:11 | #4 |
Пользователь
Регистрация: 04.05.2012
Сообщений: 13
|
Ok. Попробую сказать иначе. Представьте некоторую процедуру в моей программе, которая будет выполняться отдельным независимым процессом. Такое возможно?
Самое потрясающее достижение программного обеспечения состоит в том, что оно способно уничтожить стабильность и любые достижения аппаратного обеспечения. (Henry Petroski)
|
22.08.2015, 13:51 | #5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Впрочем ты уж слишком сильно переиначил.
I'm learning to live...
|
|
22.08.2015, 17:09 | #6 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
Если знать адрес этой процедуры, то можно с другого процесса создать удаленный поток, который выполнит процедуру. Функция WinAPI CreateRemoteThread.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
|
24.08.2015, 10:23 | #7 |
Пользователь
Регистрация: 04.05.2012
Сообщений: 13
|
Вот Оно! Это уже ближе к моему. Насколько понимаю, без инжекта в процесс не обойтись?
Самое потрясающее достижение программного обеспечения состоит в том, что оно способно уничтожить стабильность и любые достижения аппаратного обеспечения. (Henry Petroski)
|
24.08.2015, 18:04 | #8 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
Просто описать в одном приложении функцию как:
Код:
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
демон на php, убить дочерний процес после того как он сделал то нчо от него требуется | dem66 | PHP | 0 | 27.10.2012 16:54 |
Процес в Delphi | RuVarez | Общие вопросы Delphi | 1 | 02.09.2010 15:09 |
Независимый проект | Pro100Chel | Общие вопросы C/C++ | 17 | 18.06.2010 23:12 |
Как сделать, чтобы процес небыло видно в Диспетчере задач? | HunterMan | Win Api | 1 | 25.06.2008 21:34 |
Delphi 7 перестал выполнять процес компиляции!!! | aesoem | Общие вопросы Delphi | 5 | 07.04.2008 10:44 |