![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
straylon |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 10.2.2010 Пользователь №: 1461 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Здравствуйте! Использую компонент QAxWidget для отображения в главном окне своей программы документа Word.
Делаю это стандартным способом: ui.axWidget->setControl("C:/1.doc"), где axWidget собственно сам QAxWidget, размещенный на окно в дизайнере. Все работает нормально, однако после закрытия программы, остается процесс WINWORD.EXE, который подгружает память компьютера пользователя. Как при выходе его можно программно останавить? Буду благодарен за любые советы и помощь. Вот код:
|
|
|
Wlad |
![]()
Сообщение
#2
|
Студент ![]() Группа: Участник Сообщений: 21 Регистрация: 9.12.2008 Пользователь №: 450 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Попробовал так:
dynamicCall("SetDisplayAlerts(bool)", FALSE); // НЕ Выводить сообщения dynamicCall("Quit()"); процесс в памяти после выхода из программы не остается. В свое время, много работал с Excel в Builder. Был такой же эффект, как и у Вас. Если пользователь не выходя из программы несколько раз запускал отчет в Excel, то все процессы оставались в памяти даже после выхода из программы. После обсуждения этого явления на соответствующем форуме пришли к выводу, что это проблема Microsoft. Выход из положения был один: удалять процесс самому через API Windows. |
|
|
straylon |
![]()
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 10.2.2010 Пользователь №: 1461 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Попробовал так: dynamicCall("SetDisplayAlerts(bool)", FALSE); // НЕ Выводить сообщения dynamicCall("Quit()"); процесс в памяти после выхода из программы не остается. В свое время, много работал с Excel в Builder. Был такой же эффект, как и у Вас. Если пользователь не выходя из программы несколько раз запускал отчет в Excel, то все процессы оставались в памяти даже после выхода из программы. После обсуждения этого явления на соответствующем форуме пришли к выводу, что это проблема Microsoft. Выход из положения был один: удалять процесс самому через API Windows. Wlad, а ты как это делаешь так - ui.axWidget->dynamicCall("SetDisplayAlerts(bool)", FALSE); ui.axWidget->dynamicCall("Quit()"); или так QAxObject* word = new QAxObject ("Word.Application"); word->dynamicCall("SetDisplayAlerts(bool)", FALSE); word->dynamicCall("Quit()"); Просто в первом случае не работает, а во втором работает. Но второй случай меня не устраивает, т.к. работа с Вордом ведется через ui.axWidget, а не через Word.Application, как отдельное от моей программы приложение Ворд. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 27.6.2025, 13:20 |