Ir para conteúdo
Fórum Script Brasil
  • 0

Controlar Um Aplicativo Delphi Com Outro.


jacsonsoares

Pergunta

Olá pessoal,

Estamos fazendo integração com um sistema externo e esse sistema tem que controlar a minha aplicação feita em delphi, o cara me pediu apenas o nome do form, nome dos componetes(edit) e o nome dos eventos.

Não é que o cara consegue com um aplicativo comtrolar o meu no windows....

O pior é que ele não foi camarada e não quis me dar a dica..

Alguém sabe como se faz isso??

Att, Jacson Soares;

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Guest - eduardo -

não sou nenhum mestre não, mas tem um comando

PostMessage

com o qual você pode mandar comandos, teclas, e coisas assim tipo, você pode escrever algo no word, ou atualizar(F5), a do programa que esteja querendo controlar pode fazer muita coisa.

da uma olhada

abracos

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Moacir --

Até o site é confuso, por isso, copiei aki o exemplo:

smot:

Hi,

Try this:

function EnumChildProc(Wnd: hWnd; SL: TStrings): BOOL; stdcall;

var

szFull: array[0..MAX_PATH] of Char; //Buffer for window caption

begin

Result := Wnd <> 0;

if Result then

begin

GetWindowText(Wnd, szFull, SizeOf(szFull)); // put window text in buffer

if (Pos(SL[0], StrPas(szFull)) > 0) // Test for text

and (SL.IndexOfObject(TObject(Wnd)) < 0) // Test for duplicate handles

then SL.AddObject(StrPas(szFull), TObject(Wnd)); // Add item to list

EnumChildWindows(Wnd, @EnumChildProc, Longint(SL)); //Recurse into child windows

end;

end;

function ClickButton(ParentWindow: Hwnd; ButtonCaption: string): Boolean;

var

SL: TStringList;

H: hWnd;

begin

SL := TStringList.Create;

try

SL.AddObject(ButtonCaption, nil); // First item in list is text to find

EnumChildWindows(ParentWindow, @EnumChildProc, Longint(SL));

H := 0;

case SL.Count of

1: ShowMessage('Window text not found.');

2: H := hWnd(SL.Objects[1]);

else

ShowMessage('Ambiguous text detected.');

end;

finally

SL.Free;

end;

Result := H <> 0;

if Result then PostMessage(H, BM_CLICK, 0, 0);

end;

procedure TForm1.Button1Click(Sender: TObject);

var

hWinMX: HWND;

begin

hWinMX:=FindWindow('Afx:400000:b:10011:0:0',nil);

if hWinMX <> 0 then

begin

ClickButton( hWinMX,'Refresh');

end else // WinMX not open...

end;

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...