Verificando se o Word, PowerPoint, Excel, Access e o Outlook estão abertos

 

Esta dica serve para você saber se no momento o Word, o PowerPoint, o Excel, o Access ou o Outlook estão rodando. Esta dica é bem útil caso você queira fazer um aplicação que funcione junto com alguns desses programas, e veremos que não é dificil de usa-lá.

Primeiramente crie um novo projeto no Delphi, e adiconne no seu formulário apenas um componente Tbutton. Agora iremos fazer a verificação.

Antes de qualquer coisa é necessário incluir duas unit que serão usadas, elas serão inclusas na seção uses lá no começo do código. lá irá ter várias outras units, coloque mais essas duas separadas por virgula.

 

uses ComObj,ActiveX;

 

Agora criaremos uma função que verificará se o programa está aberto. Insira no código esta função, em qualquer parte depois da declaração {$R *.DFM}

 

function IsObjectActive(className: string):boolean;

var

  ClassID: TCLSID;

  Unknown: IUnknown;

begin

  try

    ClassID := ProgIDToClassID(ClassName);

    Result := GetActiveObject(ClassID, nil, Unknown) = S_OK;

  except

    Result := false;

  end;

end;

 

Então no evento Onclick do botão Verificar insira o código abaixo:

 

procedure TForm1.Button1Click(Sender: TObject);

begin

if IsObjectActive('Word.Application') then

  ShowMessage('O MS Word está rodando!');

if IsObjectActive('Excel.Application') then

  ShowMessage('O MS Excel está rodando !');

if IsObjectActive('Outlook.Application') then

  ShowMessage('O MS Outlook está rodando!');

if IsObjectActive('Access.Application') then

  ShowMessage('O MS Access está rodando!');

if IsObjectActive('Powerpoint.Application') then

  ShowMessage('O MS Powerpoint está rodando!');

end;

 

Este procedimento apenas informa a função qual o programa que ele irá verificar e executará uma ação, neste caso coloquei apenas um ShowMessage. Espero que esta dica seja de grande utilidade, qualquer coisa contacte-me

 

Feito por Marco Antonio

marco@clubedelphi.net