On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



Пост N: 44
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 09.12.10 11:46. Заголовок: Свой Word-объект


В программе MY.EXE делаем CreateObject(Word.Application). Ежели задачу MY.EXE прервать через таскбар, то в списке задач остается висеть процесс Winword.exe При повторном запуске MY.EXE попытка выполнить CreateObject(Word.Application) даст ошибку. Что процесс несет в себе информацию о задаче его породившем, ведь если в таскбаре висят только Winword.exe открытые обычным способом, то CreateObject(Word.Application) просто создаст новый экземлляр Winword.exe ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 5 [только новые]


moderator




Пост N: 131
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 09.12.10 12:38. Заголовок: fil пишет: При повт..


fil пишет:

 цитата:
При повторном запуске MY.EXE попытка выполнить CreateObject(Word.Application) даст ошибку.


Да, все верно. Поэтому попробуй такой подход


 цитата:
LOCAL oWord, oText

TRY
oWord := GetActiveObject( "Word.Application" )
CATCH
TRY
oWord := CreateObject( "Word.Application" )
CATCH
Alert( "ERROR! Word not avialable. [" + Ole2TxtError()+ "]" )
RETURN
END
END



Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 45
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 09.12.10 12:47. Заголовок: Нет, меня интересова..


Нет, меня интересовало как по процессу определить задачу его породившую. А GetActiveObject( "Word.Application" ) использовать (именно для Word) не всегда здорово - в некоторых ситуациях команды Word отрабатывает неадекватно

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 46
Зарегистрирован: 17.06.10
ссылка на сообщение  Отправлено: 09.12.10 16:54. Заголовок: По идее, parentproce..


По идее, parentprocessid вторичного процесса должно равняться processid родительского однако это не так

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 39
Зарегистрирован: 28.07.10
ссылка на сообщение  Отправлено: 11.12.10 12:32. Заголовок: Я делал так oExcel..


Я делал так
 
oExcel:= TOleAuto():New( "Excel.Application" )
if Ole2TxtError() != 'S_OK'
MsgExclamation('Excel is not available!','Excuse me')
Return
endif

при частом падении программы в процессе отладки
в памяти висели несколько процессов Excel
но это не мешало повторному запуску (и повторному падению с оставлением еще одного экземпляра Excel)
Удаление этих процессов Excel в ТаскМэнеджере тоже не приводило ни к каким неприятностям.


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 14
Зарегистрирован: 19.05.05
ссылка на сообщение  Отправлено: 11.12.10 12:55. Заголовок: Я уже писал, что мен..


Я уже писал, что меня больше интересует как по процессу определить задачу его породившую. А Word/Excel взяты просто для примера



Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 6
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет