Идёт загрузка страницы...

htp://aptem.net.ru





Delphi 1

Определение работы Delphi II

При работе Delphi существует несколько открытых окон, не просто "Delphi". Следовательно, ваше приложение должно проверять больше одного окна, чтобы сделать имитацию работы Delphi очень трудной. Для примера:


   
function DelphiIsRunning : boolean;
var
H1, H2, H3, H4 : Hwnd;
const
A1 : array[0..12] of char = 'TApplication'#0;
A2 : array[0..15] of char = 'TAlignPalette'#0;
A3 : array[0..18] of char = 'TPropertyInspector'#0;
A4 : array[0..11] of char = 'TAppBuilder'#0;
T1 : array[0..6] of char = 'Delphi'#0;
begin
H1 := FindWindow(A1, T1);
H2 := FindWindow(A2, nil);
H3 := FindWindow(A3, nil);
H4 := FindWindow(A4, nil);
Result := (H1 <> 0) and (H2 <> 0) and (H3 <> 0) and (H4 <> 0);
end;

initialization
if not DelphiIsRunning then
begin
AboutBox := TAboutBox.Create(nil);
AboutBox.ShowModal;
AboutBox.Free;
Halt;
end;
end.

Самая большая каверза, которую я обнаружил в данном методе, заключается в том, что когда вы запускаете программу с данным кодом, она работает из-под Delphi (что, в прочем, нам необходимо), но она будет работать и в том случае, когда программа запущена не из-под Delphi, а Delphi также загружена и работает параллельно. [000748]