Название: Запуск браузера из программы. Отправлено: Jkc от Март 18, 2005, 18:37 Вот какой вопрос. Нужн по нахатию кнопки запускать дефолтовый браузер с введённой определённой URL строкой, в Win32Api это выглядит так.
void CRamblDlg::OnButton1() { ::ShellExecute(NULL, "open", http://prog.org.ru/ ,NULL, NULL, SW_SHOWNORMAL); } Как это сделать в приложении которое пишеться на Qt ? Название: Запуск браузера из программы. Отправлено: Keiko от Март 18, 2005, 20:01 точно также ? :D
Название: Запуск браузера из программы. Отправлено: Jkc от Март 20, 2005, 20:51 #ifdef __cplusplus
extern "C" { #include <windows.h> } #include <qstring.h> #endif /* __cplusplus */ void Form1::ShellExec() { QString str = "www.prog.org"; ShellExecute(NULL, "open", str , NULL, NULL, SW_SHOWNORMAL); } Если вместо open поставить NULL то пишет тоже самое но уже про третий параметр. Выводит следующее сообщение об ошибке. ShellExecuteW cannot conwert parametr 2 from "char[5] ' to 'LPTSTR' Types pointed to are unrelated; convertion requires reinterpret_cast, style cast or function-style cast Название: Запуск браузера из программы. Отправлено: MIB от Март 20, 2005, 21:39 Попробуй сделать со вторым параметром следующее
QString("open").ucs2() Тоесть ::ShellExecute(NULL, QString("open").ucs2(), str.ucs2(), NULL, NULL, SW_SHOWNORNAL) Слушай а что не используеш вместо ShellExecute(), QProcess? Название: Запуск браузера из программы. Отправлено: Jkc от Март 21, 2005, 14:45 Так я не против QProcess, просто я недавно с Qt начал работать
скиньте пожалуйста ссылку на пример что бы взглянуть. Название: Запуск браузера из программы. Отправлено: MIB от Март 21, 2005, 22:45 Вот пример коммандного шела из книги М.Шлее "Qt. Профессиональное программирование на C++" с использованием класса QProcess
class Shell : public QVBox { Q_OBJECT private: QProcess* m_process; QLineEdit* m_txtCommand; QTextEdit* m_txtDisplay; public: // ------------------------------------------------------------------ Shell(QWidget* pwgt = 0, const char* pszName = 0) : QVBox(pwgt, pszName) { m_process = new QProcess(this); m_txtDisplay = new QTextEdit(this); QHBox* phbx = new QHBox(this); QLabel* plbl = new QLabel("&Command:", phbx); m_txtCommand = new QLineEdit("dir", phbx); plbl->setBuddy(m_txtCommand); QPushButton* pcmd = new QPushButton("&Enter", phbx); connect(m_process, SIGNAL(readyReadStdout()), SLOT(slotDataOnStdout()) ); connect(m_txtCommand, SIGNAL(returnPressed()), SLOT(slotReturnPressed()) ); connect(pcmd, SIGNAL(clicked()), SLOT(slotReturnPressed())); } public slots: // ------------------------------------------------------------------ void slotDataOnStdout() { while (m_process->canReadLineStdout()) { m_txtDisplay->append(m_process->readLineStdout() + "\n"); } } // ------------------------------------------------------------------ void slotReturnPressed() { m_process->clearArguments(); #ifdef Q_WS_WIN m_process->addArgument("cmd.exe /C " + m_txtCommand->text()); #else QStringList list = QStringList::split(" ", m_txtCommand->text()); QStringList::iterator it; for (it = list.begin(); it != list.end(); ++it) { m_process->addArgument(*it); } #endif if (!m_process->start()) { m_txtDisplay->append("Error!"); } } }; Название: Запуск браузера из программы. Отправлено: Keiko от Март 21, 2005, 23:42 Цитата: "Jkc" Так я не против QProcess, просто я недавно с Qt начал работать скиньте пожалуйста ссылку на пример что бы взглянуть. Дык читай qt/examples и assistant :) Название: Запуск браузера из программы. Отправлено: Perchilla от Март 22, 2005, 23:19 Цитата: "MIB" Вот пример коммандного шела из книги М.Шлее "Qt. Профессиональное программирование на C++" с использованием класса QProcess слушай, а у тебя есть эта книженция в электронном виде?Название: Запуск браузера из программы. Отправлено: MIB от Март 23, 2005, 00:14 Только в бумажном :D
Название: Запуск браузера из программы. Отправлено: Racheengel от Март 25, 2005, 14:57 дык поскань, распознай - и в Нет !! 8)
Название: Запуск браузера из программы. Отправлено: Zmey от Март 29, 2005, 13:09 Сканируй и клади - сами распознаем :)
|