WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  запуск проги

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   запуск проги
DEiL опубликован 04-09-2001 16:47 MSK   Click Here to See the Profile for DEiL   Click Here to Email DEiL  
народ, есть в c++ ещё какая-нибудь функция, аналогичная ShellExecute, только чтоб она ТУПО запускала exe файл, а не смотрела в реестре с какой прогой он ассоциирован и уже запускала...? :)
stan опубликован 04-09-2001 17:03 MSK     Click Here to See the Profile for stan  Click Here to Email stan     
CreateProcess
lamo опубликован 05-09-2001 07:27 MSK     Click Here to See the Profile for lamo  Click Here to Email lamo     
тэкс.
DEiL опубликован 05-09-2001 14:24 MSK     Click Here to See the Profile for DEiL  Click Here to Email DEiL     
значит так.
1) createprocess- функция для извращенцев 8)
2) она мне не подходит. короче, тут такая фигня - у меня есть командная строка, допустим "c:\program files\viewer\viewer.exe c:\program files\half life\hl.exe -dev -console" (просто пример 8))
так вот мне надо запустить c:\program files\viewer\viewer.exe с аргументом c:\program files\half life\hl.exe -dev -console НЕ прибегая к использованию ShellExecute ;)
как это сделать?? :))
stan опубликован 05-09-2001 14:39 MSK     Click Here to See the Profile for stan  Click Here to Email stan     
Я не врубился - почему для извращенцев? Там и параметры задать можно и еще много чего интересного сделать. А если ты не знаешь как ей пользоваться, то можешь попробовать _exec функции (там их вроде несколько разновидностей).
DEiL опубликован 05-09-2001 17:13 MSK     Click Here to See the Profile for DEiL  Click Here to Email DEiL     
дык. ты видел сколько там надо аргументов??? :)
и вообще, exec не подходит, т.к. там надо указывать имя файла и аргументы, а у меня это всё в одной строке и фиг тут разберёшь, где что, т.к. в пути к файлу есть пробелы 8)
stan опубликован 05-09-2001 17:35 MSK     Click Here to See the Profile for stan  Click Here to Email stan     
А тебе влом параметры подставить !!?? И че за отмазка - неизвестно что за параметры? Разберись и подставь! Я, например, больше никаких функций не знаю.
m_fox опубликован 05-09-2001 17:50 MSK     Click Here to See the Profile for m_fox  Click Here to Email m_fox     
Ну в общем-то других описанных API функций-то и нет. ShellExecute сама функцией CreateProcess пользуется.
делай строку, какую тебе надо и передавай этой функции.
один параметр - сам запускаемый модуль, а другой параметры.
jerry опубликован 05-09-2001 19:30 MSK     Click Here to See the Profile for jerry  Click Here to Email jerry     
А что system кто нибудь отменил уже :)?
пишешь просто:
strcat(fcommand, "c:\\program files\\viewer\\viewer.exe");
strcat(fcommand,"c:\\program files\\half life\\hl.exe -dev -console или все что пожелаешь");
system(fcommand);
Aldamo опубликован 05-09-2001 20:45 MSK     Click Here to See the Profile for Aldamo  Click Here to Email Aldamo     
В CreateProcess первые 2 аргумента могут сбить с толку. Делай так:

PROCESS_INFORMATION pi;
STARTUPINFO si;
// заполняем структуру STARTUPINFO
GetStartupInfo(&si);
// Создаем строку с именем проги и аргументами
LPTSTR lpappname = "myprogram.exe arg1 arg2";
CreateProcess(
NULL, // имя будет во 2-м параметре
lpappname, // командная строка процесса
NULL, // используем атрибуты защиты // процесса по умолчанию
NULL, // используем атрибуты защиты потока по умолчанию
FALSE, // дескрипторы не наследуются
CREATE_DEFAULT_ERROR_MODE, // стандартая обработка
// ошибок
NULL, // переменные окружения не нужны
NULL, // текущий каталог не используем
&si, // передаем копию собственной
// структуры STARTUPINFO
&pi // получим описатель и другую информацию о процессе
);

Demo_S опубликован 05-09-2001 21:53 MSK     Click Here to See the Profile for Demo_S  Click Here to Email Demo_S     
WinExec
DEiL опубликован 05-09-2001 22:17 MSK     Click Here to See the Profile for DEiL  Click Here to Email DEiL     
thank you very much :)
Aldamo опубликован 06-09-2001 07:22 MSK     Click Here to See the Profile for Aldamo  Click Here to Email Aldamo     
Note: WinExec function is provided only for compatibility with 16-bit Windows. Win32-based applications should use the CreateProcess function. (Microsoft)

m_fox опубликован 06-09-2001 11:17 MSK     Click Here to See the Profile for m_fox  Click Here to Email m_fox     
2jerry:
system не является WinAPI функцией, со всеми вытекающими последствиями.
jerry опубликован 06-09-2001 13:12 MSK     Click Here to See the Profile for jerry  Click Here to Email jerry     
2m_fox

Не является. Ну и что? memcpy, к примеру тоже не API.. и какие последствия?

Flex Ferrum опубликован 06-09-2001 13:45 MSK     Click Here to See the Profile for Flex Ferrum  Click Here to Email Flex Ferrum     
2m_fox:

Вот, вот. Зато system является законной функций CRTL, и, в данном случае, работает именно через CreateProcess.

purpe опубликован 06-09-2001 16:09 MSK     Click Here to See the Profile for purpe  Click Here to Email purpe     
думаю, вопрос исчерпан :)

http://www.sources.ru/cpp/cpp_vcpp_faq.shtml
(в самом конце)

DEiL опубликован 06-09-2001 18:51 MSK     Click Here to See the Profile for DEiL  Click Here to Email DEiL     
Дима, ХВАТИТ рекламить!!!!!!! -))))
m_fox опубликован 07-09-2001 06:23 MSK     Click Here to See the Profile for m_fox  Click Here to Email m_fox     
2jerry: во-первых system запускает программу на выполнение и ждет завершения. Нет никаких средсдв, чтобы закрыть это приложение.
Во-вторых memcpy использует API функцию CopyMemory.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.