• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 534
  • Last Modified:

Is Delphi IDE running?

Please help me, I badly need a _working piece of code_ for Delphi 3 to determine whether Delphi IDE is running at the moment my app is launched. Thanks,

yegor
0
yegor
Asked:
yegor
  • 4
1 Solution
 
intheCommented:
hi,
just have to do below on form create event:

Function IsIdeRunning: boolean;
Begin
  Result:=FindWindow('TAppBuilder',nil) > 0;
End;

Regards Barry

0
 
intheCommented:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

Function RunningInTheIDE: boolean;
Begin
  Result:=FindWindow('TAppBuilder', nil) > 0;
End;

procedure TForm1.FormCreate(Sender: TObject);
begin
 if RunningInTheIDE then
 Form1.Caption := 'The Delphi Ide is Running'
 else
 Form1.Caption := 'The Delphi Ide is Not Running';
 end;

end.


OR

if FindWindow('TAppBuilder', Nil) <> 0 Then
  BEGIN
            ShowMessage('Delphi and or C++ Builder is running');   END
 
  if  ({FindWindow('TApplication', nil) = 0) OR - all delphi apps have TApp }
 
      (FindWindow('TAlignPalette', nil) = 0) OR
      (FindWindow('TPropertyInspector', nil) = 0) OR
      (FindWindow('TAppBuilder', nil) = 0) then
  begin
    ShowMessage('Delphi is not running!');
  end
  else
    ShowMessage('Delphi is running!');
0
 
intheCommented:
MMM..
FOR DELPHI 3 THIS WOULD BE BEST:

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..8] of char = 'Delphi 3'#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;

procedure TForm1.FormCreate(Sender: TObject);
begin
 if DelphiIsRunning then
 Form1.Caption := 'The Delphi Ide is Running'
 else
 Form1.Caption := 'The Delphi Ide is Not Running';
 end;
0
 
intheCommented:
Sorry for so many postings ,
thought i better test this and this one is best to work if any version of delphi is running:

function DelphiIsRunning : boolean;
var
  H2,H3,H4,D1, D2, D3, D4,D5 : Hwnd;
  Yep : Boolean;
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..8] of char = 'Delphi'#0;
  T2 : array[0..8] of char = 'Delphi 2'#0;
  T3 : array[0..8] of char = 'Delphi 3'#0;
  T4 : array[0..8] of char = 'Delphi 4'#0;
  T5 : array[0..8] of char = 'Delphi 5'#0;
begin
yep := false;
  D1 := FindWindow(A1, T1);
  D2 := FindWindow(A1, T2);
  D3 := FindWindow(A1, T3);
  D4 := FindWindow(A1, T4);
  D5 := FindWindow(A1, T5);
  IF (D1 <> 0) or (D2 <> 0) or (D3 <> 0) or
      (D4 <> 0) or (D5 <> 0) then yep := true
      else yep := false;
  H2 := FindWindow(A2, nil);
  H3 := FindWindow(A3, nil);
  H4 := FindWindow(A4, nil);
  Result := (H2 <> 0) and (H3 <> 0) and (H4 <> 0) and yep;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 if DelphiIsRunning then
 Form1.Caption := 'The Delphi Ide is Running'
 else
 Form1.Caption := 'The Delphi Ide is Not Running';
 end;
0
 
yegorAuthor Commented:
Thank you very much,

yegor
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now