Enviar dados de um programa para outro
Alguém sabe como posso enviar dados do meu programa para um outro?
Exemplo:
Cadastro de Clientes, tem os campos CÓDIGO e NOME DO CLIENTE.
No meu sistema eu possuo os dados do cliente e tenho 2 edits que representam o código e o nome do cliente.
A questão é: como posso enviar os dados que estão nos meus edit1 e edit2 para os 2 campos do outro sistema sem que eu tenha que copiar e colar do meu sistema para o outro?
Exemplo:
Cadastro de Clientes, tem os campos CÓDIGO e NOME DO CLIENTE.
No meu sistema eu possuo os dados do cliente e tenho 2 edits que representam o código e o nome do cliente.
A questão é: como posso enviar os dados que estão nos meus edit1 e edit2 para os 2 campos do outro sistema sem que eu tenha que copiar e colar do meu sistema para o outro?
Dgsfilho
Curtidas 0
Respostas
Paullsoftware
14/09/2008
Na prática nunca fiz isso, mas tente pesquisar algo sobre SendMenssage e PostMenssage...
GOSTEI 0
Wdrocha
14/09/2008
Bom dia....tenho certeza q este artigo cairá como uma luva.....
[url]https://www.devmedia.com.br/articles/viewcomp.asp?comp=1243&hl=[/url]
Espero ter ajudado....
Qualquer coisa....posta aew...
Flw
[url]https://www.devmedia.com.br/articles/viewcomp.asp?comp=1243&hl=[/url]
Espero ter ajudado....
Qualquer coisa....posta aew...
Flw
GOSTEI 0
Dgsfilho
14/09/2008
Cara, já tive uma idéia de como fazer mais ou menos, só que preciso localizar o form para qual vai as informações e não sei o nome do form só sei o caption e preciso enviar 2 ou mais edits inteiros para os outros componentes da outra aplicação e isso num sei como fazer.
GOSTEI 0
Dgsfilho
14/09/2008
É o seguinte: quase consegui. Com o código abaixo consigo enviar o texto para o último edit da aplicação. Se a aplicação que vai receber as informações tiver apenas um campo, envia normalmente, mas se a mesma tiver mais de um campo só é enviada a informação para o último campo. Gostaria de saber como enviar vários (8 especificamente) valores diferente para uma outra aplicação com 8 campos. Alguém sabe?
procedure TForm1.Button1Click(Sender: TObject); var AppRX : HWND; // aplicação que vai receber as informações Campo : HWND; // campo da aplicação que vai receber as informações Txt : String; // Texto a ser enviado begin Txt := ´Texto a ser inserido´; AppRX := FindWindow(nil,´Receptora´); // localiza a aplicação receptora pelo caption Campo := FindWindowEx(AppRX, 0, 0, nil ); // localiza o campo que vai receber a informação SendMessage(Campo, WM_SETTEXT, 0, DWord(PChar(Txt))); // envia o texto para o campo end;
GOSTEI 0
Dgsfilho
14/09/2008
sobe...
GOSTEI 0
Bononi
14/09/2008
Eu uso estas funções que fiz a muito tempo:
function BuscaCtrlNr(hApp: HWND; ControlClassName: string; CtrlNr: Word = 1): HWND;
var
i: Word;
hControl: HWND;
begin
Result := 0;
if IsWindow(hApp) then
begin
Dec(CtrlNr);
hControl := 0;
for i := 0 to CtrlNr do
begin
Control:=FindWindowEx(hApp,hControl,PChar(ControlClassName), nil);
if hControl = 0 then
Exit;
end;
end;
Result := hControl;
end;
procedure InsTxtEd(hApp: HWND; EditClassName, ATxt: string; EditNr: Integer);
var
hEdit: HWND;
begin
// Exemplo Busca pelo 2o Edit na aplicação
hEdit := BuscaCtrlNr(FindWindow(´Nome da aplicação´, nil), ´Edit´, 2);
if hEdit <> 0 then
// Teste: Manda ´Oi!´ para o Edit
SendMessage(hEdit, WM_SETTEXT, 0, Integer(PChar(´Oi!´)));
end;
function BuscaCtrlNr(hApp: HWND; ControlClassName: string; CtrlNr: Word = 1): HWND;
var
i: Word;
hControl: HWND;
begin
Result := 0;
if IsWindow(hApp) then
begin
Dec(CtrlNr);
hControl := 0;
for i := 0 to CtrlNr do
begin
Control:=FindWindowEx(hApp,hControl,PChar(ControlClassName), nil);
if hControl = 0 then
Exit;
end;
end;
Result := hControl;
end;
procedure InsTxtEd(hApp: HWND; EditClassName, ATxt: string; EditNr: Integer);
var
hEdit: HWND;
begin
// Exemplo Busca pelo 2o Edit na aplicação
hEdit := BuscaCtrlNr(FindWindow(´Nome da aplicação´, nil), ´Edit´, 2);
if hEdit <> 0 then
// Teste: Manda ´Oi!´ para o Edit
SendMessage(hEdit, WM_SETTEXT, 0, Integer(PChar(´Oi!´)));
end;
GOSTEI 0