Russian Qt Forum
Ноябрь 28, 2024, 05:05 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Запуск браузера из программы.  (Прочитано 13564 раз)
Jkc
Гость
« : Март 18, 2005, 18:37 »

Вот какой вопрос.  Нужн по нахатию кнопки запускать дефолтовый браузер с введённой определённой URL строкой, в Win32Api это выглядит так.
void CRamblDlg::OnButton1()
{
       ::ShellExecute(NULL, "open", http://prog.org.ru/ ,NULL,
      NULL, SW_SHOWNORMAL);      
}
Как это сделать в приложении которое пишеться на Qt ?
Записан
Keiko
Гость
« Ответ #1 : Март 18, 2005, 20:01 »

точно также ?  Веселый
Записан
Jkc
Гость
« Ответ #2 : Март 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
Гость
« Ответ #3 : Март 20, 2005, 21:39 »

Попробуй сделать со вторым параметром следующее
QString("open").ucs2()

Тоесть
::ShellExecute(NULL, QString("open").ucs2(), str.ucs2(), NULL, NULL, SW_SHOWNORNAL)

Слушай а что не используеш вместо ShellExecute(), QProcess?
Записан
Jkc
Гость
« Ответ #4 : Март 21, 2005, 14:45 »

Так я не против QProcess, просто я недавно с Qt начал работать
скиньте пожалуйста ссылку на пример что бы взглянуть.
Записан
MIB
Гость
« Ответ #5 : Март 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
Гость
« Ответ #6 : Март 21, 2005, 23:42 »

Цитата: "Jkc"
Так я не против QProcess, просто я недавно с Qt начал работать
скиньте пожалуйста ссылку на пример что бы взглянуть.


Дык читай qt/examples и assistant Улыбающийся
Записан
Perchilla
Гость
« Ответ #7 : Март 22, 2005, 23:19 »

Цитата: "MIB"
Вот пример коммандного шела из книги М.Шлее "Qt. Профессиональное программирование на C++" с использованием класса QProcess
слушай, а у тебя есть эта книженция в электронном виде?
Записан
MIB
Гость
« Ответ #8 : Март 23, 2005, 00:14 »

Только в бумажном  Веселый
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #9 : Март 25, 2005, 14:57 »

дык поскань, распознай - и в Нет !!  Крутой
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Zmey
Гость
« Ответ #10 : Март 29, 2005, 13:09 »

Сканируй и клади - сами распознаем Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.055 секунд. Запросов: 23.