Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
5 / 5 / 2
Регистрация: 28.11.2012
Сообщений: 165
1

Qt Запуск стороннего приложения

12.11.2015, 10:49. Показов 2979. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
Вот, что мне требуется:
Из qt приложения (windows) запустить к примеру Adobe Photoshop, и передать в photoshop скрипт на выполнение.
Сам скрипт хотелось бы содержать в с++ коде, но если это будет излишне, возможно вынести его в рабочую директорию.

Доп информация:
Photoshop кушает скрипты на Js, Vb, AppleScript.
Мое решение опирается на Js с расширение файлов .jsx


Как я понимаю это делается через ActiveX? Подскажите в какую сторону копать буду благодарен, подскажите примером кода - будет просто замечательно.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2015, 10:49
Ответы с готовыми решениями:

Возможен ли запуск стороннего приложения в окне моего приложения?
Возможно ли запускать стороннее приложение в окне моего приложения ? В Идеале не терять...

Запуск стороннего приложения
Здравствуйте! Нужно, что бы по клику на кнопку вызывалась программы (Outlook 2007) (WordPad). ...

Координаты стороннего приложения, открытого из моей программы
Здравствуйте, задача заключается в том, что есть необходимость открывать из моей программы...

Запуск стороннего приложения
Вот такой вопрос, какой нужен код для запуска стороннего приложения (chm, exe и т.д) при нажатии на...

4
66 / 66 / 18
Регистрация: 31.03.2015
Сообщений: 253
12.11.2015, 16:56 2
QProcess мб.
0
5 / 5 / 2
Регистрация: 28.11.2012
Сообщений: 165
12.11.2015, 20:22  [ТС] 3
yarko, в общем есть такая штука как Interop.Photoshop.dll - это библиотека для доступа к COM объектам (может чего напутал). С ее помощью как раз и можно обращаться к объектой модели в Photoshop.
Но в виде .dll ее не использовать в qt creator.
Народ на форумах писал, что использовал утилиту dumpcpp для создания .cpp и .h файлов из такого типа библиотек.
Может кто чего знает, как это делать?
0
6 / 6 / 3
Регистрация: 05.11.2014
Сообщений: 67
13.11.2015, 08:45 4
Лучший ответ Сообщение было отмечено Maxfashko как решение

Решение

Раз речь о com`е, может это чем-то поможет?
Пользовалась Resource Hacker.

Еще что-то такое делала, может натолкнет на что-то:
C++ (Qt)
1
2
3
4
// получаем указатель на Visio
QAxObject *mVisio = new QAxObject( "Visio.Application");
QAxObject *vworkbooks = mVisio->querySubObject( "Documents()" );
vworkbooks->dynamicCall( "Open(const QString&)", "D:\\путь\\my.vsd" );
А так постою, послушаю))
1
5 / 5 / 2
Регистрация: 28.11.2012
Сообщений: 165
13.11.2015, 17:44  [ТС] 5
traktort, попробую отпишусь.
До этого пробовал обратиться к библиотеке вот таким образом (пример выдран с документации):

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Файл проекта для примера выглядит примерно так:
 
 TEMPLATE = app
 TARGET   = qutlook
 CONFIG  += qaxcontainer
 
 TYPELIBS = $$system(dumpcpp -getfile {00062FFF-0000-0000-C000-000000000046})
 
 isEmpty(TYPELIBS) {
     message("Microsoft Outlook type library not found!")
     REQUIRES += Outlook
 } else {
     HEADERS  = addressview.h
     SOURCES  = addressview.cpp main.cpp
 }
Собственно -getfile libid Печатает в выходной поток имя файла для библиотеки типов libid, я подставлял свой.
Для просмотра библиотек использовал microsoft oleview.exe, который ставиться вместе со студией.
Но результата никакого при сборке проекта в qtcreator. В консоли сборки всегда выпадает сообщение message("Microsoft Outlook type library not found!"). Пробовал менять libid, используя библиотеки от micsoft office. Та же беда.

Примечательно, что запустил проект в студии 12 на C#, в ссылках подцепил эту самую библиотеку Interop.Photoshop.dl и все отлично заработало... Вот теперь осталось на qt это все перенести.

Добавлено через 3 часа 59 минут
Цитата Сообщение от traktort Посмотреть сообщение
Раз речь о com`е, может это чем-то поможет?
Пользовалась Resource Hacker.
Еще что-то такое делала, может натолкнет на что-то:
// получаем указатель на Visio
QAxObject *mVisio = new QAxObject( "Visio.Application");
QAxObject *vworkbooks = mVisio->querySubObject( "Documents()" );
vworkbooks->dynamicCall( "Open(const QString&)", "D:\\путь\\my.vsd" );
А так постою, послушаю))
В общем пока не пробавал Resource Hacker, ограничился QAxObject. То, что нужно. Молодец!
1
13.11.2015, 17:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.11.2015, 17:44
Помогаю со студенческими работами здесь

Запуск стороннего приложения
Собственно сделал в ЕКСЕЛе полезную софтину, умеющую экспортировать ДБФ-ники из листа екселя. ...

Запуск стороннего приложения
Нужно чтоб из своей программы я бы запускал калькулятор (желательно стандартный виндовый), а потом...

Запуск стороннего приложения
Здравствуйте! Возникла проблема с запуском стороннего приложения. Имеется консольное приложение,...

Запуск стороннего приложения
Доброго времени дорогие знатоки! Возник такой вопрос: можно ли открыть презентацию в vb 2010. Если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru