|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.01.2008, 10:48 | #11 | |
Форумчанин
Регистрация: 29.12.2007
Сообщений: 137
|
Цитата:
|
|
18.01.2008, 00:50 | #12 |
Пользователь
Регистрация: 15.01.2008
Сообщений: 64
|
Извините, а как с русскими путями извратиться можно?
|
23.01.2008, 03:35 | #13 |
Пользователь
Регистрация: 15.01.2008
Сообщений: 64
|
Кстати чтоб решить проблему с русскими буквами в пути
В пакетнике можно вместо пути прописать %MyPath%, где %MyPath% - это переменная пользователя, хранящаяся в реестре, в HKEY_CURRENT_USER\Environment. Добавить её перед созданием bat-файла не сложно reg.RootKey := HKEY_CURRENT_USER; reg.OpenKey('Environment',False); reg.WriteString('MyPathTemp',ParamS tr(0)); только одна проблемка. Если создать её вручную через Система - Дополнительно - Переменные среды - Переменные среды пользователя. То всё сразу работает. Если создать моим способом, то значение переменной обновляется только после перезагрузки. Кто знает как решить? |
23.01.2008, 10:28 | #14 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Вообще, это делается не так.
1. Из процесса А создается файл В в режиме FILE_SHARE_DELETE|FILE_SHARE_WRITE с флагом FILE_FLAG_DELETE_ON_CLOSE 2. В этот новый файл записывается выполняемый образ. 3. Процесс А создает процесс В на базе файла В и ждет сигнала Sb 4. Процесс В инициализируется и выставляет сигнал Sb и ждет завершения процесса А 5. Процесс A дожидается сигнала Sb, закрывает хэндл файла В и завершается. 6. Процесс В получает сигнал о завершении процесса А и удаляет файл, "которым был" процесс А. 7. Процесс В делает всю необходимую работу и завершается. 8. После его завершения ОС закрывает хэндл файла В и, поскольку других открытых хэндлов на этот файл не осталось (п.5) и при создании файла были указаны флаги из п.1, удаляет файл. Т.о. вся работа состоит в синхронизации двух процессов и передаче параметров от А к В. А касаемо варианта с переменными среды - они передаются при создании нового процесса через параметр lpEnvironment функции CreateProcess. |
11.06.2008, 02:13 | #15 |
Форумчанин
Регистрация: 27.01.2007
Сообщений: 293
|
Ребята, ниодин код не срабатывает. Программа не удаляется, bat фаил создается, но не удаляется. Это не может быть связанно с системой или антивирусом?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как зделать авто выполнение | Editor | Общие вопросы Delphi | 5 | 27.04.2008 21:01 |
Авто-Прокрутка в Memo | eks-s | Общие вопросы Delphi | 2 | 18.04.2008 01:52 |
НДФЛ+продажа авто | Elm0 | Свободное общение | 0 | 05.04.2008 17:07 |
Авто-фильтр, Нужна помощь | jungo | Microsoft Office Excel | 2 | 23.03.2008 11:17 |
Создание авто- загрузочной проги | Gaist | Общие вопросы Delphi | 3 | 13.06.2007 13:09 |