Запуск программ 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путь не найден
 
« Предыдущая статья   Следующая статья »