Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как запустить другое приложение? 
:(
    Опции темы
Yura_Matsuk
Дата 18.5.2004, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 16.5.2004

Репутация: нет
Всего: нет



Как запустить другое приложение с помощью C++?
--------------------
Смех смехом, а ОНА кверху мехом...
PM MAIL   Вверх
mr.DUDA
Дата 18.5.2004, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Вот пример, как запустить какую-то прогу с какими-то параметрами командной строки, и дождаться её завершения (ждать максимум 1 минуту). Если ожидание не нужно, то последние 3 строки нужно удалить.
Цитата
CString cmdLine = " -какие то параметры в командной строке";
SHELLEXECUTEINFO sei; memset(&sei, 0, sizeof(SHELLEXECUTEINFO));
sei.cbSize=sizeof(sei);
sei.lpFile=new char [_MAX_PATH];
strcpy((LPSTR)sei.lpFile, (LPCTSTR)("c:\\путь-к-программе.exe"));
sei.lpDirectory = filePath;
sei.nShow = SW_MINIMIZE;
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
sei.lpParameters = cmdLine;
CWaitCursor cur;
ShellExecuteEx(&sei);
WaitForSingleObject(sei.hProcess, 60000); // ждём 60 секунд



--------------------
user posted image
PM MAIL WWW   Вверх
shedon
Дата 18.5.2004, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 4
Всего: 11



или просто WinExec


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 18.5.2004, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Цитата
или просто WinExec

Респект, про WinExec я и не знал thumbs-up.gif

Кстати, там есть один ньюанс:
Цитата
The executable name is treated as the first white space-delimited string in lpCmdLine. If the executable or path name has a space in it, there is a risk that a different executable could be run because of the way the function parses spaces. The following example is dangerous because the function will attempt to run "Program.exe", if it exists, instead of "MyApp.exe".

WinExec("C:\\Program Files\\MyApp", ...)
If a malicious user were to create an application called "Program.exe" on a system, any program that incorrectly calls WinExec using the Program Files directory will run this application instead of the intended application.

To avoid this problem, use CreateProcess rather than WinExec. However, if you must use WinExec for legacy reasons, make sure the application name is enclosed in quotation marks as shown in the example below.

WinExec("\"C:\\Program Files\\MyApp.exe\" -L -S", ...)



--------------------
user posted image
PM MAIL WWW   Вверх
sergejzr
Дата 18.5.2004, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 19
Всего: 360



В стандартном Си:
Код

#include <stdlib.h>
int main()
{
 system("my.exe");
 return 0;
}



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.