![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Эмуляция Delphi IDE [D6, 95/98]
Dr. Genius © (2006-10-11 18:17:00)Здравствуйте!
Хочу сделать эмулятор Delphi IDE (сами понимаете, для какой цели).
Обычно в платных компонентах идет проверка наличия запущенного Delphi IDE, и если он не обнаружен, выводится сообщение о незарегистрированной копии. Проверка эта в большинстве случаев реализуется вот как:
function IsDelphiRun: Boolean;
begin
Result := (FindWindow('TAppBuilder', nil) <> 0)
and (FindWindow('TAlignPalette', nil) <> 0)
and (FindWindow('TPropertyInspector', nil) <> 0);
end;
Я подумал, а что если сделать эмуляцию этих окон ('TAppBuilder', 'TAlignPalette' и 'TPropertyInspector') с помощью CreateWindow? Вот как я это сделал:
CreateWindow('TAppBuilder', 'Builder', 1, 0, 0, 0, 0, 0, 0, 1, nil);
CreateWindow('TAlignPalette', 'Palette', 1, 0, 0, 0, 0, 0, 0, 1, nil);
CreateWindow('TPropertyInspector', 'Inspector', 1, 0, 0, 0, 0, 0, 0, 1, nil);
Но при проверке оказалось, что Delphi IDE не эмулируется (хотя не могу говорить точно, так как я проверял только на одном платном компоненте; других у меня нет). Может, я задаю не те значения в качестве аргументов.
DrPass (2006-10-11 22:08:00) [1]
> CreateWindow('TAppBuilder', 'Builder', 1, 0, 0, 0, 0, 0,
> 0, 1, nil);
Мне всегда казалось, что перед вызовом CreateWindow следовало бы зарегистрировать соответствующий класс с помощью RegisterClass...
Ketmar (2006-10-11 19:42:00) [2]>[2] Джо(c) 11-Oct-2006, 18:26
>Или "не приемлю"? ;)
нет. не понимаю.
Джо (2006-10-11 18:26:00) [3]> [1] Ketmar © (11.10.06 18:24)
> не понимаю.
Или "не приемлю"? ;)
Ketmar (2006-10-11 18:24:00) [4]>[0] Dr. Genius 11-Oct-2006, 18:17
>сами понимаете, для какой цели
не понимаю.