C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 19 - Запуск программ WinExec / Win 32 API / Win32 API

Шаг 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	путь не найден

| |
Автор Каев Артем.
[AD]