api do windows
17/01/2006
0
e depois uma funcao que conseguisse ler essa string da memoria e colar em um edit de outra aplicacao???
seria possivel fazer isso? como??
se alguem tiver algum material sobre a api do windows por favor me de um toque onde posso conseguir
abraços!!!!!!!!!!!!!!!
Rafael Gomes
Posts
17/01/2006
Adriano Santos
Declare a unit ClipBrd;
Para copiar para a memória
procedure TForm1.Button1Click(Sender: TObject); begin Edit1.CopyToClipboard; end;
Para colar
procedure TForm1.Button2Click(Sender: TObject); begin Edit2.PasteFromClipboard; end;
17/01/2006
Rafael Gomes
Declare a unit ClipBrd;
Para copiar para a memória
procedure TForm1.Button1Click(Sender: TObject); begin Edit1.CopyToClipboard; end;
Para colar
procedure TForm1.Button2Click(Sender: TObject); begin Edit2.PasteFromClipboard; end;
o problema amigo é que quero copiar de uma aplicacao para outra, nao na mesma aplicacao ...
se puder ajudar eu agradeço!!
abraços!!!
17/01/2006
Adriano Santos
Ai só usando banco de dados cara. Se você usar o msm banco de dados nos dois softwares vc nem vai precisar copiar nada para memoria.
Agora, explique mais detalhadamente o que quer....acho que não é tão difícil assim
17/01/2006
Rafael Gomes
estou desenvolvendo uma aplicacao relacionada com a parte de exportacao ...
depois de efetuados todos os cadastros seria desejavel que eu conseguisse colar alguns dados em edits de uma outra aplicacao ...
o problema é como alternar o controle das aplicacoes, e como vou mandar os dados para a segunda aplicacao ...
é mais ou menos isso ... se precisar, posso dar mais detalhes ...
[]sss
17/01/2006
Adriano Santos
estou desenvolvendo uma aplicacao relacionada com a parte de exportacao ...
depois de efetuados todos os cadastros seria desejavel que eu conseguisse colar alguns dados em edits de uma outra aplicacao ...
o problema é como alternar o controle das aplicacoes, e como vou mandar os dados para a segunda aplicacao ...
é mais ou menos isso ... se precisar, posso dar mais detalhes ...
[]sss[/quote:21dc3752b1]
Cara, vou pesquisar.
Eu tenho um exemplo aqui para escrever dentro do bloco de notas, se quiser o esquema é o seguinte:
procedure TForm1.Button1Click(Sender: TObject); var wnd : HWND; i : Integer; s : string; begin wnd := FindWindow(´notepad´,nil); if wnd <> 0 then begin wnd := FindWindowEx(wnd,0,´Edit´,nil); s := ´Seu Texto para ser escrito no bloco de notas :))´; For i := 1 to Length(s) do SendMessage(wnd, WM_CHAR, Word(s[i]), 0); PostMessage(wnd, WM_KEYDOWN , VK_RETURN, 0); {Simular o enter} PostMessage(wnd, WM_KEYDOWN , VK_SPACE, 0); {Simular o Espaço} end; end;
Talvez o melhor seja usar sockets.
17/01/2006
Rafael Gomes
interessante o codigo abaixo, depois vou testar ...
se voce conseguir alguma coisa em sua pesquisa ou souber de algum material para baixar, ou site ... poste aqui ... ficarei muito grato!!
grande abraço!!!! :D
17/01/2006
Rafael Gomes
wnd := FindWindow(´notepad´,nil);
esta funcao acha a janela pelo nome?? pelo titulo?? pelo nome do processo???
wnd := FindWindowEx(wnd,0,´Edit´,nil);
nao entendi o terceiro parametro, o que esse parametro tem a ver com a janela do notepad??
[]ss
17/01/2006
Adriano Santos
wnd := FindWindow(´notepad´,nil);
Pela classe da janela.
wnd := FindWindowEx(wnd,0,´Edit´,nil);
Aqui ele procura o controle dentro da janela notepad, no caso pela classe Edit
17/01/2006
Rafael Gomes
o programa que preciso colar as informacoes é um emulador de terminais chamado iww ...
ele emula a tela de um terminal IBM 3278 e 3279 modelos 2, 3, 4 e 5
entao nao sei como localizar a janela ... o programa utiliza janelas mdi, será que nao existe uma outra forma de localizar esta janela ... como por exemplo pelo nome, ou pelo processo???
eu tentei aqui pelo nome da janela mas sem sucesso ...
conto com a colaboracao do pessoal do forum
[]s
17/01/2006
Adriano Santos
wnd := FindWindow(nil,´Calculadora´);
Tente inverter usando o segundo parâmetro que é o caption da janela, agora se são janelas MDI acho que não funciona.
17/01/2006
Rafael Gomes
entao vamos primeiro tentar achar a janela ... depois as janelas filhas ...
a respeito de material de consulta, sites e apostilas correlacionadas com o assunto, vc nao teria nada ??
abraços!!!!
17/01/2006
Sanses
Não sei se funciona, pois nunca testei em aplicações MDI, mais vale a pena tentar. Baixe este aplicativo free [url=http://www.greatis.com/delphicb/windowse/download.html]WinDowse[/url] e use a aba Class para pegar o nome da classe da aplicação desejada. A Aba Parents para pegar os componentes, ex:
Abra o Internet Explorer e seleciona a Aba Class, posicione o cursor do mouse na barra de título e voce terá para o nome da aplicação IEFrame.
Agora selecione a aba parents e posicione o mouse em cima do combobox correspondente a barra de endereço, voce terá ComboboxEx32 para este componente.
Como disse não sei se funciona em MDI, teste ai e poste o resultado, ok?
[]´s
Sanses
17/01/2006
Michael
[url=http://subsimple.com/delphi.asp]Neste link[/url] vc vai encontrar o componente [b:9e2e4f4e2d]InterAppComm[/b:9e2e4f4e2d], que permite enviar mensagens de um aplicativo para o outro. Basta colocar um [i:9e2e4f4e2d]Sender [/i:9e2e4f4e2d]em uma aplicação, e um [i:9e2e4f4e2d]Receiver [/i:9e2e4f4e2d]na outra. Vem com um exemplo prático muito bom.
E vc não precisa se preocupar com janelas, API´s, etc. ;-) Na verdade, tudo o que os colegas estão falando aqui, sobre [b:9e2e4f4e2d]SendMessage[/b:9e2e4f4e2d], [b:9e2e4f4e2d]FindWindow[/b:9e2e4f4e2d], ele já implementa.
[]´s
17/01/2006
Adriano Santos
Boa Michael, até eu vou dar uma olhada. :wink:
Clique aqui para fazer login e interagir na Comunidade :)