Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 391
  • Last Modified:

check for delphi runing

hi,

I want check is delphi runing?

tanks
0
m_r_zamani
Asked:
m_r_zamani
1 Solution
 
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
 
JaymolCommented:
Or alternatively,

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


John.
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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
 
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
 
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

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

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