Панель управления Win7 апплетами - PullRequest
0 голосов
/ 10 мая 2011

В DelphiXe я создаю через мастер проектов новый апплет Панели управления, меняю иконку, название и т. Д. Для реакций активации я пишу Showmessage («Тест»); Скомпилируйте, получите dll, переименуйте в * .cpl. В win.explorer при запуске этого файла появляется сообщение. В WinXp я вставляю этот файл в c: \ windows \ system32, открываю панель управления Windows, вижу апплет и при его запуске выдается тестовое сообщение. Я делаю тоже самое на Win7x64 (или на 2008r2), но в панели управления апплета не наблюдаю, перезагрузка проблемы не решает. Пробовал дублировать файл в c: \ windows \ syswow64, тоже нет результата. Как заставить апплет появиться на панели под Win7?

Код:

library Project1;

uses
 CtlPanel,
 AppletModule1 in 'AppletModule1.pas' {AppletModule1AppletModule: TAppletModule};

exports CPlApplet;

{$R *.RES}

{$E cpl}

begin
 Application.Initialize;
 Application.CreateForm(TAppletModule1AppletModule, AppletModule1AppletModule);
 Application.Run;
end.

////////////// and Unit module

unit AppletModule1;

interface

uses
 Windows, Messages, SysUtils, Classes, CtlPanel, Dialogs;

type
 TAppletModule1AppletModule = class(TAppletModule)
   procedure AppletModuleActivate(Sender: TObject; Data: Integer);
 private
 { private declarations }
 protected
 { protected declarations }
 public
 { public declarations }
 end;

var
 AppletModule1AppletModule: TAppletModule1AppletModule;

implementation

{$R *.DFM}

procedure TAppletModule1AppletModule.AppletModuleActivate(Sender: TObject;
 Data: Integer);
begin
Showmessage('Test');
end;

end.

1 Ответ

0 голосов
/ 07 августа 2015

В XP вы можете поместить файл .cpl в системную папку и покончить с этим:

Как зарегистрировать элементы панели управления DLL

Начиная с Windows XP, новые DLL-файлы элементов панели управления должны быть установлены в папке соответствующего приложения в папке Program Files. Элементы, хранящиеся в каталоге System32 с расширением .cpl, регистрировать не нужно; они автоматически отображаются на панели управления. Все остальные элементы панели управления, использующие CPlApplet, должны быть зарегистрированы одним из двух способов:

  • Если элемент панели управления должен быть доступен для всех пользователей, зарегистрируйте путь для каждого компьютера, добавив значение REG_EXPAND_SZ в HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Панель управления \ подраздел Cpls , установите путь к DLL.

  • Если элемент панели управления должен быть доступен для каждого пользователя, используйте HKEY_CURRENT_USER в качестве корневого ключа вместо HKEY_LOCAL_MACHINE.

Однако в Vista и более поздних версиях ваш апплет .cpl должен быть зарегистрирован в реестре. Бросить его в системную папку может быть недостаточно.

Разработка для панели управления

Типы апплетов панели управления
Существует три типа апплетов панели управления:

  • Объекты команд - апплеты, которые запускают команды, указанные в реестре

  • Папки оболочки - апплеты открываются на панели управления. Примерами апплетов папки оболочки являются папка «Шрифты», средства администрирования, персонализация, система, учетные записи пользователей и программы

  • CPL - апплеты, которые реализуют функцию CplApplet

Командные объекты проще всего реализовать.

Добавление и регистрация собственных апплетов и задач
Добавление собственного апплета на панель управления проще в Windows Vista. Разработчики программного обеспечения теперь могут легко добавлять свои собственные апплеты и задачи в панель управления.

В предыдущих версиях Windows вы добавляли апплеты на панель управления с помощью реестра Windows и функции CplApplet. Операционная система использует Реестр для перечисления модулей, содержащих апплеты . Функция CplApplet каждого модуля вызывается для отображения апплета, его значка и описания, а затем вызывает апплет. Этот процесс сложнее, чем использование объектов команд, потому что апплет должен реализовывать интерфейс CplApplet. Хотя этот процесс все еще поддерживается в Windows Vista, использование объектов команд приветствуется, поскольку его легче реализовать.

Теперь в Windows Vista вы можете просто написать исполняемый файл (.exe), зарегистрировать его как объект команды, и апплет появится на панели управления. Например, вы можете написать исполняемый файл MySystemApplet .exe для вашего апплета и добавьте апплет на панель управления, просто зарегистрировав MySystemApplet.exe в качестве объекта команды оболочки вместо утомительного изменения двоичного файла с помощью реализации интерфейса CplApplet.

...