Шаг 19 - Запуск программ WinExec

Запускать внешние программы бывает нужно не часто. Но вот есть такое техническое решение. Я знаком с несколькими программами имеющими понятие горячей связи. То есть вы можете к своим объектам привязать данные из других программ. Например, такой подход есть в ГИС системе ArcView Вы заполняете поле в базе данных именем файла и пишите скрипт на языке AVENUE, в котором вызываете программу и передаете в параметры имя файла для открытия. Идея хороша тем, что позволяет внутри одной программы связать много разных данных.

Реализуется данная возможность на основе функции Windows с названием WinExec. Вот её описание.

UINT WinExec(  
	LPCSTR lpCmdLine,	// строка с именем программы
	UINT uCmdShow	// вид вывода на экран в смысле
			//скрытая или нормальная и так далее
);

А вот и код с примером, который запускает обычный калькулятор:

// ExecTest.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "windows.h"
#include "iostream.h"

void main()
{
	cout << WinExec("c:\\windows\\calc.exe",SW_SHOW) << endl;
}

Да эта функция реализованна только для совместимости с Win 16 приложениями, а приложения Win 32 должны реализовывать данную возможность через CreateProcess.

Результатом этой функции может быть несколько кодов, но если код возврата больше 31, то функция выполнена успешно. Вот некоторые коды:

ERROR_BAD_FORMAT		формат exe файла неверен
ERROR_FILE_NOT_FOUND	файл не найден
ERROR_PATH_NOT_FOUND	путь не найден

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 15.02.2000