Советы по Delphi

         

Определение работы 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]



Содержание раздела