Файл проекта для приложения обнаруживающего


присутствие Delphi

{——————————————————————————————————————————————————————} { Демонстрационная программа, } { обнаруживающая присутствие Delphi. } { NORUN.DPR : Главная форма } { Автор: Эйс Брейкпойнт, N.T.P. } { При содействии Дона Тейлора } { } { Приложение, работающее лишь при условии } { одновременной работы 32-разрядной версии Delphi. } { } { Написано для *High Performance Delphi 3 Programming* } { Copyright (c) 1997 The Coriolis Group, Inc. } { Дата последней редакции 30/4/97 } {——————————————————————————————————————————————————————} program NoRun; uses Forms, Dialogs, NRunMain in 'NRunMain.pas' {Form1}, WalkStuf in 'WalkStuf.pas'; {$R *.RES} begin Application.Initialize; { Если не существует работающего экземпляра 32-разрядной версии Delphi, вывести сообщение об ошибке и завершить работу программы. Если все хорошо, продолжить выполнение. } if ModuleSysInstCount('DELPHI32.EXE') < 1 then MessageDlg('Delphi 32 must be running to execute this program', mtError, [mbOK], 0) else begin Application.CreateForm(TForm1, Form1);
Application.Run; end; end.

Основная идея — уничтожить приложение еще до того, как пользователь увидит главную форму. Для решения этой задачи я снова включил код непосредственно в файл проекта. На этот раз функция ModuleSysInstCount из модуля WalkStuf проверяет, работает ли в системе по меньшей мере один экземпляр 32-разрядной версии Delphi (DELPHI32.EXE). Если проверка дает положительный результат, программа продолжает работу, если нет — выводится сообщение об ошибке.

Небольшое замечание: поскольку в модуле WalkStuf используется Tool Help32, описанная методика будет работать лишь в Win95.

Конец записи (2 апреля).



Содержание раздела