Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];

Вниз

Пауза в приложении.   Найти похожие ветки 

 
BanderLog   (2005-11-02 12:16) [0]

Мастера, подскажите пожалуйста, как реализовать паузу в приложении, допустим на секунда. Ситуация такая, один файл необходимо переместить из одного каталога в другой, но при этом файл бывает не всегда освобожден программой, которая с ним работает. необходимо подождать секунду - другую и повторить попытку переноса.


 
Игорь Шевченко ©   (2005-11-02 12:18) [1]

Sleep(1000) ?


 
BanderLog   (2005-11-02 12:24) [2]

О! Оно!!!! перебрал все варианты Delay, Pause...  а про него забыл :)


 
BanderLog   (2005-11-02 12:37) [3]

Совсем забыл.... Спасибо :)


 
Digitman ©   (2005-11-02 13:27) [4]


> Ситуация такая, один файл необходимо переместить из одного
> каталога в другой, но при этом файл бывает не всегда освобожден
> программой, которая с ним работает


а программу эту ты САМ программно запускаешь ?

или типа неизвестно заранее, кто и как сейчас пользует это файл, потому типа и подождать (хрен знает сколько) не грех ?


 
BanderLog   (2005-11-03 09:06) [5]

Идет обработка автокадоских файлов скриптом в автокаде. Автокад я запускаю сам через CreateOleObject, потом запускаю в нем скрипт, который закрывает автокад. После отработки скрипта необходимо закопировать обработанные файлы в другой каталог.
Возникает вопрос, как отловить момент закрытия автокада?


 
Digitman ©   (2005-11-03 10:03) [6]


> как отловить момент закрытия автокада?


ищешь процесс Автокада в списке активных процессов, получаешь его PID, открываешь процесс, получаешь его хэндл

далее ждешь завершения процесса с пом. одной из удобных тебе WaitFor-функций

еще лучше будет стартовать процесс Автокада явно (CreateProcess), при этом искать его в списке процессов не требуется - ф-ция вернет хэндл процесса .. а после этого обращаешься к стартованному процессу как к олей-серверу (GetActiveOleObject)


 
Leonid Troyanovsky ©   (2005-11-03 11:58) [7]


> BanderLog   (03.11.05 09:06) [5]

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


А чего, скрипт не может сам скопировать файлы в другой каталог?

--
Regards, LVT.


 
BanderLog   (2005-11-03 12:02) [8]

После завершения обработки скриптом, с файлами проводится ещё ряд манипуляий, которые скрипту не под силу... Которые в любом случай необходимо выполнять по завершению автокада.


 
Digitman ©   (2005-11-03 12:39) [9]


> BanderLog   (03.11.05 12:02) [8]


а у Акада как сервера автоматизации разве нет событий, извещающих олей-контроллер об открытии/закрытии документов ?

я просто не в курсе ..

скажем, у Excel.Application есть событие OnWorkbookBeforeClose, которое вполне можно приспособить для фиксации факта завершения работы сервера с файлом документа


 
Leonid Troyanovsky ©   (2005-11-03 12:55) [10]


> BanderLog   (03.11.05 12:02) [8]
> После завершения обработки скриптом, с файлами проводится
> ещё ряд манипуляий, которые скрипту не под силу... Которые
> в любом случай необходимо выполнять по завершению автокада.


Ну, если  у объекта Автокад есть свойства типа идентификатора
текущего процесса, или, хотя бы, хендла активного окна, то
проблемы с ожиданием решаются просто, как уже рассказывал
уважаемый Digitman ©. Если нет - то можно попробывать вернуть
результат вызова из скрипта того же GetCurrentProcessId.
(в VBA описание оной ф-ции выглядело б примерно так:
declare function GetCurrentThreadId lib "kernell32" as Long).

--
Redgards, LVT.


 
BanderLog   (2005-11-04 13:08) [11]

Спасибо всем :)
Сделал как советовал
> Digitman ©   (03.11.05 12:39) [9]

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



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2005.11.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.044 c
14-1130240015
Некто
2005-10-25 15:33
2005.11.20
Региональные словечки =)


2-1131025415
Eksell
2005-11-03 16:43
2005.11.20
Kak podshitati v faile kolichestvo naprimer simvolov #


9-1120203177
Зм1й
2005-07-01 11:32
2005.11.20
Сглаживание


2-1131170308
balepa
2005-11-05 08:58
2005.11.20
Как прочитать *.bin


2-1130694384
JBL
2005-10-30 20:46
2005.11.20
dbGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский