Советы по Delphi

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


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

function DelphiIsRunning : boolean;varH1, H2, H3, H4 : Hwnd;constA1 : 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;beginH1 := 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;

initializationif not DelphiIsRunning thenbeginAboutBox := TAboutBox.Create(nil);AboutBox.ShowModal;AboutBox.Free;Halt;end;end.

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



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