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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt3.3.6 - запуск другой программы из своей  (Прочитано 5168 раз)
TukiNov
Гость
« : Декабрь 14, 2006, 02:42 »

Можно как нить сделать чтобы , например по нажатию кнопки на форме, выполнялся исполняемый файл, в винде например это exe файл, или запускалась стороняя программа.
По документации ничего не нашёл Грустный
Записан
Dendy
Гость
« Ответ #1 : Декабрь 14, 2006, 03:03 »

Копай в сторону QProcess.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


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


Просмотр профиля
« Ответ #2 : Декабрь 14, 2006, 09:41 »

если ТОЛЬКО под виндой - ShellExecute рулит. Но она не переносимая.
Иначе QProcess.
Записан

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 не волк, в лес не уйдёт
Tonal
Гость
« Ответ #3 : Декабрь 14, 2006, 11:16 »

Если из 4.2, то можно QDesktopServices::openUrl
Записан
TukiNov
Гость
« Ответ #4 : Декабрь 14, 2006, 23:52 »

спасибо, буду пробовать, о результатах сообщу Улыбающийся
Записан
simulacrum
Гость
« Ответ #5 : Декабрь 20, 2006, 11:28 »

Интересно в подробностях. Я новичок в этом. Но я под Linux работаю. А там вроде все на этом построено. Просто пока еще только пытаюсь вьехать, как это делается...

Но так чтобы не просто запускалось, а передвать аргументы консольной программе и выводить резульатты в gui
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


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


Просмотр профиля
« Ответ #6 : Декабрь 20, 2006, 13:33 »

это через QProcess.
Записан

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 не волк, в лес не уйдёт
voron
Гость
« Ответ #7 : Январь 01, 2007, 13:03 »

Я когда-то написал такую функцию. Работает.
Код:

//Процедура запуска другого приложения
int spawn (const char *name_program,  // Имя исполняемого файла
const char *parametr// Параметр
)
{
char *arg_list[] = {const_cast<char*>(name_program), const_cast<char*>(parametr), NULL};
#ifdef Q_WS_X11
pid_t id_process;
id_process = fork();

if (id_process != 0)
{
return id_process;
}
else
{
//char *par = arg_list[0];
execvp(name_program, arg_list);
abort();
}
#endif
#ifdef Q_WS_WIN
int id_process = -1;
char  commandline[256];//(char *)name_program;
if ((parametr!="")&&(parametr!=NULL))
{
strcpy(commandline, name_program);
strcat(commandline, (const char*)" ");
strcat(commandline, parametr);
}

STARTUPINFOA cif;
ZeroMemory(&cif, sizeof(STARTUPINFO));
cif.cb = sizeof(STARTUPINFO);
PROCESS_INFORMATION pi;
if (CreateProcessA(name_program, commandline, NULL, NULL, FALSE, NULL, NULL, NULL, &cif, &pi))
return id_process;
else return -1;
#endif
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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