preload

Программирование C++

if{spawnlp(P_OVERLAV,"OMenage.exe","OMenage.ехе",Editl->Text, NULL)) ShowMessage("Программа " + Editl->Text + " не выполнена;" + " нет файла OMenage.exe");
Этот оператор прервет выполнение приложения POverlay и загрузит на его ме¬сто в памяти короткую (примерно 10 К) программу OMenage.exe, передав в нее как параметр имя запускаемого приложения. Программа OMenage.exe вызовет в ре¬жиме ожидания эту программу, а по окончании ее работы удалится из памяти и опять вызовет основное приложение POverlay. Таким образом, во время выполне¬ния вызываемой программы в памяти будет находиться не ваше большое приложе¬ние POverlay, а только маленькая программа управления OMenage.exe.
Описанное взаимодействие программ имеет некоторый недостаток: при воз¬врате в POverlay текст в окне Editl будет утерян. Этот недостаток легко устранить. Измените основной файл приложения POverlay следующим образом:
#include
tpragma hdrstop
USERES("POverlay.res") ;
USEFORMf'UOverlayl .cpp", Forml) ;
finclude "OOverlayl,h" // включение головного файла приложения
//
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR lpCmdLine, int) <
try <
Applications Initialize () ;
Application->CreateForm( сlassid(TForml), &Forml);
Forml->Editl->Text = lpCmdLine; // Загрузка окна Editl
Application->Run();
)
catch (Exception Sexception)
(
Application->ShowException(Sexception);
I
return 0;
}
По сравнению со стандартным файлом, созданным C++Builder, в него добавле¬но две строки (отмечены жирным шрифтом): директива, включающая заголовоч¬ный файл модуля UOverlayLh, содержащего описание вашей формы Forml, и опе¬ратор, загружающий в окно Editl текст, переданный через командную строку. Еще одно изменение по сравнению со стандартным файлом — введение в заголовок функции WinMain параметра lpCmdLine — ссылки на командную строку. Если в файле приложения POverlay сделаны такие изменения, то в приложении OMenage второй вызов функции должен быть изменен на следующий:
spawnlp(P_OVERLAY,"POVERLAY.exe","POVERLAY.exe",lpCmdLine, NULL);
Этот вызов отличается от того, что был раньше, передачей в программу той ко-мандной строки, которая была задана при вызове OMenage. Таким образом, в про¬грамму POverlay вернется имя запускавшейся программы, которое будет загруже¬но в окно Editl.
Проверьте работу такой организации запуска приложений. Запустите POverlay и задайте в окне редактирования имя какой-нибудь программы. Напри¬мер, Calc — имя калькулятора Windows. Или command.com — открытие окна DOS. Окно POverlay исчезнет с экрана и вместо него появится окно вызванной про¬граммы. В Диспетчере задач Windows (вызывается клавишами Ctrl-Alt-Del) вы мо¬жете убедиться, что программа POverlay исчезла из числа выполняемых приложе¬ний. А на странице Процессы Диспетчера задач вы увидите, что появился процесс OMenage. После завершения вызванной вами программы опять откроется окно POverlay, а процесс OMenage исчезнет.
Функция spawnlp принадлежит к целому семейству, включающему 8 подоб¬ных функций. Подробн

стр. 1 стр. 2 стр. 3 стр. 4 стр. 5 стр. 6 стр. 7 стр. 8 стр. 9 стр. 10 стр. 11 стр. 12 стр. 13 стр. 14 стр. 15 стр. 16 стр. 17 стр. 18 стр. 19 стр. 20 стр. 21 стр. 22 стр. 23 стр. 24 стр. 25 стр. 26 стр. 27 стр. 28 стр. 29 стр. 30 стр. 31 стр. 32 стр. 33 стр. 34 стр. 35 стр. 36 стр. 37 стр. 38 стр. 39 стр. 40 стр. 41 стр. 42 стр. 43 стр. 44 стр. 45 стр. 46 стр. 47 стр. 48 стр. 49 стр. 50 стр. 51 стр. 52 стр. 53 стр. 54 стр. 55 стр. 56 стр. 57 стр. 58 стр. 59 стр. 60 стр. 61 стр. 62 стр. 63 стр. 64 стр. 65 стр. 66 стр. 67 стр. 68 стр. 69 стр. 70 стр. 71 стр. 72 стр. 73 стр. 74 стр. 75 стр. 76 стр. 77 стр. 78 стр. 79 стр. 80 стр. 81 стр. 82 стр. 83 стр. 84 стр. 85 стр. 86 стр. 87 стр. 88 стр. 89 стр. 90 стр. 91 стр. 92 стр. 93 стр. 94 стр. 95 стр. 96 стр. 97 стр. 98 стр. 99 стр. 100

+