check for delphi runing

hi,

I want check is delphi runing?

tanks
m_r_zamaniAsked:
Who is Participating?
 
intheCommented:
there is a little used function debughook to see if i dlephi debugging mode:

if (debughook <> 0)
Form1.Caption := 'debugging in delphi'
else
Form1.Caption := 'not debugging in delphi';



or as TAppBuilder etc also catches cbuilder etc for delphi only use also look for delphi[version no.] as in:

function DelphiRunning : 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 DelphiRunning then
 Form1.Caption := 'The Delphi Ide is Running'
 else
 Form1.Caption := 'The Delphi Ide is Not Running';
 end;
0
 
kretzschmarCommented:
a possibility could be to search a window which class is TAppBuilder
0
 
comptebidon81Commented:
If you want to know if Delphi is currently running on the PC, then try this procedure:

procedure TfrmMain.IsDelphiRunning;
    function IsItDelphi(HandleParam : HWND; LPARAM : lParam): boolean; stdcall;
    var
        Buffer : array [0..255] of Char;
        szBuffer : String;
    begin
        Result := True;
        if((Windows.IsWindowVisible(HandleParam)) and
           (HandleParam <> Application.Handle))then
        begin
            Windows.GetWindowText(HandleParam, Buffer, 255);
            setlength(szBuffer, 6);
            if(szBuffer = 'Delphi')then
            begin
                frmMain.m_bDelphiIsRunning := True;
                Result := False;
            end;
        end;
    end;
var
    szPath : ShortString;
Begin
    try

        m_bDelphiIsRunning := False;
        Windows.EnumWindows(@IsItDelphi, 0);
    except
    end;
end;
0
Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

 
JaymolCommented:
Or alternatively,

If (FindWindow('TAppBuilder', nil)+FindWindow('TPropertyInspector', nil)+FindWindow('TAlignPalette')+FindWindow('TMenuBuilder'))=0 then.....delphi is not running.


John.
0
 
JaymolCommented:
Or perhaps a better way would be....

function DelphiIsRunning: Boolean;
begin
  Result:=Not ((FindWindow('TAppBuilder', nil)=0) or
               (FindWindow('TPropertyInspector', nil)=0) or
               (FindWindow('TMenuBuilder', nil)=0) or
               (FindWindow('TAlignPalette', nil)=0));
end;


And just say...

  If DelphiIsRunning .......

John.
0
 
edeyCommented:
and components have the csDesigning State.

GL
Mike
0
 
m_r_zamaniAuthor Commented:
i want know have can simulate the delphi is running?
0
 
intheCommented:
why ?
you can only simulate if you know what is going to be looked for..

ie
if you made an app using the classnames above then the above functions would think delphi was running.
0
 
pisceanCommented:
such as fooling a demo component (maybe raize's) that you are in debug mode???
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.

All Courses

From novice to tech pro — start learning today.