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

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

Как прочитать описание .CPL файла?


-= Like =- ©   (2002-08-19 15:20:00) 

Добрый день. Когда в Панели управления щелкаешь мышью по значкам CPL файлов, то в левой стороне Проводника появляеться описание .CPL файла (естественно, когда включен режим просмотра "Как веб-страница"). Как прочитать это описание, где оно храниться?


~Rand~   (2002-08-20 21:32:00) [1]

может в ресурсах .cpl файла


TTCustomDelphiMaster   (2002-08-20 21:05:00) [2]


> -=Like=- (20.08.02 12:52)
> Не знаем?


Знаем, знаем. Только времени нет отвечать. Вот выкроил время написал функцию. С ней еще нужно поэкспериментировать - проверить на разных OS (я проверял на XP). Ну этим ты уж сам займись.

...
uses ..., cpl;

type
...

TCplApplet = function(hwndCPl: THandle; uMsg: DWORD; lParam1: longint; lParam2: longint): Longint; stdcall;

...

implementation

...
//Получение описания Cpl
function GetCplInfo(CplPath: string): string;
var
hLib: THandle;
CplCall: TCplApplet;
CplInfW: TNewCplInfoW;
CplInfA: TNewCplInfoA;
CplInf: TCplInfo;
begin
Result :="Info not found";
hLib := LoadLibrary(PChar(CplPath));
if hLib<>0 then
try
CplCall := GetProcAddress(hLib,"CPlApplet");
if @CplCall<>nil then
try
CplCall(0, CPL_INIT, 0, 0);
CplInfA.dwSize := 0;
CplInfA.dwFlags := 0;
CplCall(0, CPL_NEWINQUIRE, 0, LongInt(@CplInfA));
if CplInfA.dwSize = sizeof(TNewCplInfoA) then
Result := CplInfA.szInfo
else
begin
CplInfW.dwSize := 0;
CplInfW.dwFlags := 0;
CplCall(0, CPL_NEWINQUIRE, 0, LongInt(@CplInfW));
if CplInfW.dwSize = sizeof(TNewCplInfoW) then
Result := WideCharToString(CplInfW.szInfo)
else
begin
CplCall(0, CPL_INQUIRE, 0, LongInt(@CplInf));
LoadStringA(hLib, CplInf.idInfo, CplInfA.szInfo, 32);
Result := CplInfA.szInfo;
end;
end;
finally
CplCall(0, CPL_EXIT, 0, 0);
end;
finally
FreeLibrary(hLib);
end;
end;

//Вызов функции
procedure TForm1.Button2Click(Sender: TObject);
begin
ShowMessage(GetCplInfo("Desk.cpl"));
end;
...


-=Like=-   (2002-08-20 12:52:00) [3]

Не знаем?

И Вы называете себя "Мастерами"???


-= Like =-   (2002-08-19 21:43:00) [4]

NEWCPLINFO, CPLINFO

Если не ошибаюсь какой-то из них хранит описание CPL файла. Сейчас по рукой инфы нет.

А как можно программно прочитать это описание CPL файла?
Пример не помешает.


TTCustomDelphiMaster   (2002-08-19 21:08:00) [5]

смотри CPlApplet, NEWCPLINFO, CPLINFO


VSergeySPB   (2002-08-19 20:00:00) [6]

За вывод подсказок в винде отвечает интерфейс InfoTip(IInfoTip).
В этом направлении и надо копать. Где-то я видел по этому поводу статью. Вроде бы на rsdn.ru.


Ученик   (2002-08-19 18:46:00) [7]

По-моему оно внутри, и это ответ на запрос


-= Like =-   (2002-08-19 18:44:00) [8]

Мне нужно прочитать описание чужого CPL файла.

TAppletModule.Help в любом случае мне не подходит.


Ученик   (2002-08-19 18:42:00) [9]

В Delphi 6.0 это свойство TAppletModule.Help


-= Like =-   (2002-08-19 18:36:00) [10]

Не верю, что никто не знает!!!!!!!!!!!!!!!!


-= Like =-   (2002-08-19 16:49:00) [11]

Нет, неправильно!

Посмотри свойства файла Modem.cpl. Там написано "Настройка модема". А теперь зайди в Панель управления и щелкни разок по значку "Модемы", слева появиться описание: "Установка нового модема и изменение его параметров". Вот что мне нужно!


Cobalt   (2002-08-19 16:30:00) [12]

Это хранится в ресурсе версии. Можно прочитать еще так: св-ва файла - вкладка "Версия". В свою CPL можно добавить, см. меню Дельфей "Информация о проекте"


Наверх

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