Active X и MS Word |
Здравствуйте, гость ( Вход | Регистрация )
Active X и MS Word |
straylon |
10.2.2010, 17:12
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 10.2.2010 Пользователь №: 1461 Спасибо сказали: 0 раз(а) Репутация: 0 |
Здравствуйте! Использую компонент QAxWidget для отображения в главном окне своей программы документа Word.
Делаю это стандартным способом: ui.axWidget->setControl("C:/1.doc"), где axWidget собственно сам QAxWidget, размещенный на окно в дизайнере. Все работает нормально, однако после закрытия программы, остается процесс WINWORD.EXE, который подгружает память компьютера пользователя. Как при выходе его можно программно останавить? Буду благодарен за любые советы и помощь. Вот код:
|
|
|
Wlad |
11.2.2010, 14:07
Сообщение
#2
|
Студент Группа: Участник Сообщений: 21 Регистрация: 9.12.2008 Пользователь №: 450 Спасибо сказали: 0 раз(а) Репутация: 1 |
Попробовал так:
dynamicCall("SetDisplayAlerts(bool)", FALSE); // НЕ Выводить сообщения dynamicCall("Quit()"); процесс в памяти после выхода из программы не остается. В свое время, много работал с Excel в Builder. Был такой же эффект, как и у Вас. Если пользователь не выходя из программы несколько раз запускал отчет в Excel, то все процессы оставались в памяти даже после выхода из программы. После обсуждения этого явления на соответствующем форуме пришли к выводу, что это проблема Microsoft. Выход из положения был один: удалять процесс самому через API Windows. |
|
|
straylon |
12.2.2010, 11:30
Сообщение
#3
|
Новичок Группа: Новичок Сообщений: 2 Регистрация: 10.2.2010 Пользователь №: 1461 Спасибо сказали: 0 раз(а) Репутация: 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, как отдельное от моей программы приложение Ворд. |
|
|
Текстовая версия | Сейчас: 14.1.2025, 18:36 |