Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Kinder ©   (2003-11-21 23:22:00) 

Как сделать менюшку со всем апплетами панели управлния? Т.е. получить их имена и иконки. Но только не перебором фалов cpl в System директории, т.к. не будет имен апплетов.


Kinder   (2003-11-22 14:27:00) [1]

Спасибо. Попробую.
Просто я думал может API какие есть для этого


Closer   (2003-11-22 02:22:00) [2]

Найти аплеты можно только с помощью поиска файлов.
Выдрать иконку можно так же как и из "dll", вот URL: http://www.delphiworld.narod.ru/graphic.html
поищи здесь.

А получить имя апплета можно через экспортируемую функцию CPlApplet, как её использовать можно понять из кода:

library Project1; {Измените "program" на "library"}

uses
Cpl, {используем модуль Cpl}
Windows,
Forms,
Unit1 in "Unit1.pas" {Form1};

{$R *.RES}

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

{Сallback-функция для экспорта в Панель Управления}

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, "MAINICON");
{Имя апплета}
szName := "Project1";
{Описание этого апплета.}
szInfo := "Это тестовый апплет.";
szHelpFile := "";
end;
end;
{Выполнение апплета.}
CPL_DBLCLK:
ExecuteApp;
else
Result := 0;
end;
end;

{Экспортирование функции CplApplet}
exports
CPlApplet;
begin

end.


Наверх

Титульная страница Поиск, карта сайта Написать письмо