» Апплеты в панели управления windows. . . Блог программистов


Блог программистов






20072 Мар

Апплеты в панели управления

Апплеты — это программы, которые Вы видите в панели управления, и с помощью которых можно, допустим, сделать быструю настройку, или как обычно сделать программу для удаления и обновления своей основной программы.
Начнём. Создаём обычный проект. В этом проекте ВСЁ делаем как обычно, пока код не отличается, запускаем, проверяем работу всех функций. После всего этого нажимаем Project>View source(у кого русская версия то Проект>..), короче там должны в окне, где набирали программу что-то типа этого Program Project1; и так далее. Изменяем Program на Library. Используемые модели в USES Cpl, Windows, Forms. Дальше объявим процедуру
procedure ExecuteApp;

begin
Application.Initialize;
Application.CreateForm(TForm1,Form1);
Application.Run;
end;

function CPlApplet(hwndCPl: THandle; uMsg: DWORD;
lParam1, lParam2: LongInt):LongInt;stdcall;
var
NewCplInfo:PNewCplInfo;
begin
Result:=0;
case uMsg of
//Инициализация должна возвращать True
CPL_INIT:
Result:=1;
//Число апплетов
CPL_GETCOUNT:
Result:=1;
//Помещаем информацию об этом апплете в Панель управления
CPL_NEWINQUIRE:
begin
NewCplInfo:=PNewCplInfo(lParam2);
with NewCplInfo^ do
begin
dwSize:=SizeOf(TNewCplInfo);
dwFlags:=0;
dwHelpContext:=0;
lData:=0;
//Иконка для отображения на Панели Управления
hIcon:=LoadIcon(HInstance,'MAIN');
szName:=' Имя апплета';
szInfo:=' Описание этого апплета';
// файл справки можно не писать
szHelpFile:='';
end;
end;
//И непосредственно выполнение апплета
CPL_DBLCLK:
ExecuteApp;
else Result:=0;
end;
end;

//Экспортирование функции CplApplet
exports
CPlApplet;
begin
end.
RegisterServiceProcess

Теперь, когда всё отлажено, сохраняем проект. Нажимаем компилировать, не беспокойтесь, если выйдет какое-нибудь сообщение. Проект должен сохранится в виде DLL файла. Всё что нам осталось это изменить расширение с DLL на CPL и теперь файл готов для помещения в панель управления. Для этого просто поместите его в папку windows\system32\
Вроде все, что хотел рассказал.

Комментарии запрещены