Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / ConnectToNewObject('excel.application') / 20 сообщений из 20, страница 1 из 1
14.11.2007, 14:37
    #34938735
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ConnectToNewObject('excel.application')
Код: plaintext
1.
2.
3.
4.
5.
6.
// Create ole ...
aole_book = CREATE oleobject
li_irc = aole_book.ConnectToNewObject('excel.application')
...
... // вот здесь происходит какой-то баг.
...
DESTROY aole_book
Часто происходит ошибка (не важно, чем она вызвана). Получаем сообщение Windows о закрытии приложения. Приложение падает и в этом случае не происходит это: DESTROY aole_book
В процессах остается связь с excel. При повторном запуске приложения и выборе этого же файла в лучшем случае получаем сообщение, что файл открыт; в худшем - повторное падение приложения. Лечится только рестартом. Простое удаление из процессов почему-то не помогает. Кто-нубудь сталкивался с такой проблемой? Что вообще можно придумать в случае падения программы при уже созданной связи с внешним файлом?
...
Рейтинг: 0 / 0
14.11.2007, 14:54
    #34938831
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ConnectToNewObject('excel.application')
Riska wrote:

> .. // вот здесь происходит какой-то баг.

Загони это место в TRY ... CATCH.

> Лечится только рестартом. Простое удаление из процессов
> почему-то не помогает.

Хи-хи. При отладке у меня такое бывает весьма регулярно - снимаю процесс
и работаю дальше (загружаюсь раз в неделю - в понедельник утром).

> Кто-нубудь сталкивался с такой проблемой? Что вообще можно придумать в
> случае падения программы при уже созданной связи с внешним файлом?

Исправлять ошибки, чтобы не падала.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
14.11.2007, 15:22
    #34938999
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ConnectToNewObject('excel.application')
Dim2000
Riska wrote:

> .. // вот здесь происходит какой-то баг.

Загони это место в TRY ... CATCH.
а разве GPF ловится как exception?
...
Рейтинг: 0 / 0
14.11.2007, 15:26
    #34939025
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ConnectToNewObject('excel.application')
ЗоринАндрей wrote:

> а разве GPF ловится как exception?

Не знаю, наверное, нет... впрочем, у меня при работе с Word/Excel до GPF
не доходит, а ошибки OLE ловятся.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
14.11.2007, 15:57
    #34939228
KOLCHOZ_POSTEVENT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ConnectToNewObject('excel.application')
А в этом списке Task Manager,нельзя выявить прогу,которая держит файл?
Ведь где-то есть она- эта прога.
CLI.exe-не она,случаем?
...
Рейтинг: 0 / 0
14.11.2007, 17:15
    #34939593
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ConnectToNewObject('excel.application')
KOLCHOZ_POSTEVENTА в этом списке Task Manager,нельзя выявить прогу,которая держит файл?
Ведь где-то есть она- эта прога.
CLI.exe-не она,случаем?
Неа :(
...
Рейтинг: 0 / 0
14.11.2007, 17:19
    #34939617
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ConnectToNewObject('excel.application')
Ошибку найти не получается. Добавил TRY ... CATCH. Когда получим ошибку будет видно, помогло или нет. В любом случае спасибо за подсказки.
...
Рейтинг: 0 / 0
14.11.2007, 17:20
    #34939622
KOLCHOZ_POSTEVENT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ConnectToNewObject('excel.application')
А кто?
Если знать кто,то можно попробовать завалить её перед стартом аппликации и расчистить дорогу.
...
Рейтинг: 0 / 0
14.11.2007, 17:22
    #34939637
KOLCHOZ_POSTEVENT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ConnectToNewObject('excel.application')
Коммандой завалить,не кликами в Task Meneger.
Но надо знать имя процесса.
...
Рейтинг: 0 / 0
14.11.2007, 22:45
    #34940365
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ConnectToNewObject('excel.application')
KOLCHOZ_POSTEVENTА кто?
Если знать кто,то можно попробовать завалить её перед стартом аппликации и расчистить дорогу.
Если включить мозг то можно догадаться что ConnectToNewObject('excel.application') вызывает появление процесса EXCEL.EXE.
А вот умельцам "расчищать дорогу" надо руки поотрывать!!
Вот если у юзера открыт СВОЙ Excel и он в нем полдня какой-нть отчет ваял, а тут чья-то поделка перепутала свой Excel и чужой и убила не тот?
...
Рейтинг: 0 / 0
15.11.2007, 11:04
    #34941130
KOLCHOZ_POSTEVENT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ConnectToNewObject('excel.application')
Ладно,успокойтесь,что вы разнервничались?
Повесьте на себя пояс шахида и идите отрывать руки,если "надо".
Теперь о деле.Я так понял,что Excel автор уже снимал с машины и это не помогло,не зря же он картинку в первом посте опубликовал.
Значит,файл держит кто-то другой,не эксель.
Не мешало бы понять кто.Вот и всё.
...
Рейтинг: 0 / 0
15.11.2007, 11:24
    #34941239
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ConnectToNewObject('excel.application')
По идее, в связи PB - Excel учатвуют только эти программы (см. картинку). И то и другое убивается. Для очистки совести, когда опять упадет, попробую поискать паразита.
...
Рейтинг: 0 / 0
15.11.2007, 11:48
    #34941359
KOLCHOZ_POSTEVENT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ConnectToNewObject('excel.application')
Вы,Riska,того,перед тем,как валить машину,попробуйте переименовать захваченный файл,есть вариант,что Винда сама скажет,кто держит,только не пужайтесь всяких там угроз,типа,станет unusable,это значит,вы после точки ничего не написали,гоните его к переименованию.
...
Рейтинг: 0 / 0
15.11.2007, 12:56
    #34941742
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ConnectToNewObject('excel.application')
RiskaПо идее, в связи PB - Excel учатвуют только эти программы (см. картинку). И то и другое убивается. Для очистки совести, когда опять упадет, попробую поискать паразита.

поставить TaskInfo. он показывает все открытые файлы и можно посмотреть кто именно файл держит.
http://www.iarsn.com/taskinfo.html
...
Рейтинг: 0 / 0
15.11.2007, 13:23
    #34941885
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ConnectToNewObject('excel.application')
ЗоринАндрейпоставить TaskInfo. он показывает все открытые файлы и можно посмотреть кто именно файл держит.
Я конечно все понимаю, но вот это
Process Explorer
можно взять совершенно бесплатно. Функционал сопоставим, и у кого больше фич еще посмотреть надо. Тем более что одно время и исходные тексты лежали... За что народ только деньги берет?
Там же кстати еще куча полезных утилит лежит. Тоже по-моему все free. Только исходников уже нет. Наверное потому, что Sysinternals прикупил Microsoft :)
...
Рейтинг: 0 / 0
15.11.2007, 13:27
    #34941914
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ConnectToNewObject('excel.application')
Локшин МаркНаверное потому, что Sysinternals прикупил Microsoft :)
Да, не однозначная фраза :)
...
Рейтинг: 0 / 0
15.11.2007, 13:35
    #34941952
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ConnectToNewObject('excel.application')
Локшин Марк ЗоринАндрейпоставить TaskInfo. он показывает все открытые файлы и можно посмотреть кто именно файл держит.
Я конечно все понимаю, но вот это
Process Explorer
можно взять совершенно бесплатно. Функционал сопоставим, и у кого больше фич еще посмотреть надо. Тем более что одно время и исходные тексты лежали... За что народ только деньги берет?
Там же кстати еще куча полезных утилит лежит. Тоже по-моему все free. Только исходников уже нет. Наверное потому, что Sysinternals прикупил Microsoft :)
Да я и не знал что оно стало shareware. У меня версия стоит третья вроде б уже сколько лет.
...
Рейтинг: 0 / 0
22.11.2007, 16:44
    #34959082
ConnectToNewObject('excel.application')
А так не пробовали?

OLEObject o1
int result
o1 = CREATE OLEObject
result = o1.ConnectToNewObject("excel.application")

if result<0 then
Messagebox('Внимание!','Ошибка соединения с Excel',Stopsign!)
Goto EndProg
end if
...
...
Рейтинг: 0 / 0
23.11.2007, 17:54
    #34962146
SeniorPB
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ConnectToNewObject('excel.application')
можно вызвать ConnectToObject - подключается к уже существующему болтающемуся приложению Excel
и затем передать команду по OLE чтобы Excel закрылся.
Только потом открывать новое приложение Excel через ConnectToNewObject
...
Рейтинг: 0 / 0
23.11.2007, 19:21
    #34962365
ЗоринАндрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ConnectToNewObject('excel.application')
SeniorPBможно вызвать ConnectToObject - подключается к уже существующему болтающемуся приложению Excel
и затем передать команду по OLE чтобы Excel закрылся.
Только потом открывать новое приложение Excel через ConnectToNewObject
Йоу!! Еще один умелец!!!
не-е-ет, надо начинать выдавать пользователям бейсбольные биты...
похоже иначе с этим явлением не справиться.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / ConnectToNewObject('excel.application') / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]