Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Опять про EXE-файл


Автор: Achillius 20.3.2006, 11:35
Подскажите, ешё, плиз, как мне открыть файл EXE, который я добавил в проект (файл калькулятора, пусть будет в программе, а то на разных компах, он в разных местах лежит, да и весит всего 119 кб.).
Так вот. Как сделать так, чтобы при нажатии кнопки на ToolBar выводился этот калькулятор?? Обработчик я сам сделаю, мне только строку открытия файла calc.exe. smile Спасибо.

Автор: Samhein 20.3.2006, 13:40
А
Код

WinExec("calc.exe", SW_SHOW);

нельзя чтоль использовать?

Автор: Earnest 20.3.2006, 17:43
Или ShellExecute или CreateProcess (WinExec объявлена устаревшей - This function is provided only for compatibility with 16-bit Windows)

Автор: Samhein 20.3.2006, 19:47
Earnest, главное что запускать надо calc.exe

Автор: Achillius 28.3.2006, 16:49
А можно подробнее про ShellExecute и CreateProcess. smile Какие параметры включают эти функции. WinExec не работает. Сразу выдаёт ошибку. Это , наверное, из-за того, что она считается устаревшей.

Автор: CaptainFlint 28.3.2006, 18:46
Achillius
Не совсем понятно, что имеется в виду под фразой "добавил в проект". Ты его внутрь EXE-файла своего проекта что ли впихнул? Просто добавил как файл в проект Студии? Добавил его, чтобы он лежал рядом с EXE-шником твоей проги? опиши подробнее, что сделано, и что хочется сделать.
Таскать с собой calc.exe может оказаться не слишком удачным вариантом - нет гарантии, что он запустится на других системах. Более корректное решение - это всё-таки определить, где находится этот самый calc.exe на целевой системе, и оттуда его запустить. Насколько я знаю (надо проверить), достаточно лишь разделить две ситуации: когда программа запущена под Win9x, и когда под WinNT. А путь, где лежит calc.exe, стандартный. Например, в NT - это \WINDOWS\system32\calc.exe. Т.е. в этом случае единственная задача - определить местоположение системного каталога, а уж решается она в два клика, причём есть куча способов, выбирай на вкус (через реестр, через переменные окружения, прямым вызовом GetSystemDirectory...)

Если же всё равно очень хочется именно запустить свой "личный" calc.exe, то см. выше - нужны подробности. До сих пор я лично не сталкивался с неработой WinExec, даже несмотря на его "устарелость". Скорее всего, причина в чём-то другом, например, пути некорректно указаны. Смотри возвращаемый код ошибки, по нему многое можно понять.

Автор: Achillius 29.3.2006, 09:26
CaptainFlint, я добавил файл в проект так: Project -> Add to project -> Files... Но это уже не так важно, т.к. WinExec выдаёт ошибку только под 98 виндой, а под XP и NT все работает нормально, как швейцарские часы. Да хрен с ней, с 98-ой, на предприятии для которогоя я программу делаю все равно 2000 стоит.
Всем спасибо. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)