Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mauricioperroni

[Resolvido] Copiar e colar automaticamente

Recommended Posts

Eu já postei um lance parecido mais este é mais importante seguinte preciso copiar os campos de texto de um programa para o outro . Não aguento mais copiar e colar no outro programa alguém consegue me ajudar nessa solução ..

por favor pessoal preciso disso com urgência me ajudem ...

 

Segue o link da imagem do programa e o que eu quero fazer .

 

Obrigado a todos .

 

Imagem Postada

 

 

Obrigado a todos pela ajuda antes mesmo de dar algo correto .!

 

Atenciosamente: Mauricio Perroni

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aquele programinha que eu te recomendei (o FWW) gera o código necessário para obter o handle da caixa de texto. Mas, para a operação de copiar você vai precisar usar a função SendMessage, se não me engano. Não tem como eu te passar um código genérico porque este tipo de coisa depende muito do programa de origem (o qual eu não tenho aqui, obviamente).Abraços,Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aquele programinha que eu te recomendei (o FWW) gera o código necessário para obter o handle da caixa de texto. Mas, para a operação de copiar você vai precisar usar a função SendMessage, se não me engano. Não tem como eu te passar um código genérico porque este tipo de coisa depende muito do programa de origem (o qual eu não tenho aqui, obviamente).Abraços,Graymalkin

Vou te enviar por email os códigos do FWW das duas caixas de texto a de origem e a de destino .!Na terça estará aqui no fórum e no seu e-mail Obrigado pela sua ajuda !Serei sempre grato aos que me ajudam e estarei a disposição de alguma ajuda também .se este programa que você está me ajudando der certo você será recompensado de alguma maneira pode ter certeza , não quero te comprar mais sim te recompensar. pessoas como você hoje em dia tá difícil .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aquele programinha que eu te recomendei (o FWW) gera o código necessário para obter o handle da caixa de texto. Mas, para a operação de copiar você vai precisar usar a função SendMessage, se não me engano. Não tem como eu te passar um código genérico porque este tipo de coisa depende muito do programa de origem (o qual eu não tenho aqui, obviamente).Abraços,Graymalkin

Vou te enviar por email os códigos do FWW dos dois programas são 13 caixas de texto tanto de origem quanto de destino .Na terça estará aqui no fórum e no seu e-mail .Obrigado pela sua ajuda !Serei sempre grato aos que me ajudam e estarei a disposição de alguma ajuda também .se este programa que você está me ajudando der certo você será recompensado de alguma maneira pode ter certeza , não quero te comprar mais sim te recompensar. pessoas como você hoje em dia tá difícil .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gray Olha a idéia do nosso amigo Macgyver vê se você entende pode ser um começo .http://forums.microsoft.com/MSDN-BR/ShowPo...5&SiteID=21

O que ele mostrou é o que o FWW já te fornece (de uma forma mais compacta até). E, também ele usou VB.NET enquanto você está usando o VB6. Agora a parte principal, que é copiar, você pode se basear no código dele (na parte do SendMessage).Abraços,Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então eu já consegui copiar agora só queria colar ....não estou conseguindo ai vai ....Private Sub Command2_Click()' VARIÁVEISDim ThunderRT6FormDC As LongDim lMainHwnd As LongDim lEdit1 As LongDim lEdit2 As LongDim lEdit3 As LongDim lEdit4 As LongDim lEdit5 As LongDim lEdit6 As LongDim lEdit7 As LongDim lEdit8 As LongDim lEdit9 As LongDim lEdit10 As LongDim lEdit11 As LongDim lEdit12 As LongDim lEdit13 As Long'Variáveis de EdiçãoDim sEdit1 As String * 256Dim sEdit2 As String * 256Dim sEdit3 As String * 256Dim sEdit4 As String * 256Dim sEdit5 As String * 256Dim sEdit6 As String * 256Dim sEdit7 As String * 256Dim sEdit8 As String * 256Dim sEdit9 As String * 256Dim sEdit10 As String * 256Dim sEdit11 As String * 256Dim sEdit12 As String * 256Dim sEdit13 As String * 256lMainHwnd = FindWindow("ThunderRT6FormDC", "Visualização da Plaqueta")'The Main window.lEdit1 = FindWindowEx(lMainHwnd, 0&, "ThunderRT6TextBox", vbNullString)'FIRST TEXTBOXlEdit2 = FindWindowEx(lMainHwnd, lEdit1, "ThunderRT6TextBox", vbNullString)'SECONDlEdit3 = FindWindowEx(lMainHwnd, lEdit2, "ThunderRT6TextBox", vbNullString)'lEdit4 = FindWindowEx(lMainHwnd, lEdit3, "ThunderRT6TextBox", vbNullString)'lEdit5 = FindWindowEx(lMainHwnd, lEdit4, "ThunderRT6TextBox", vbNullString)'lEdit6 = FindWindowEx(lMainHwnd, lEdit5, "ThunderRT6TextBox", vbNullString)'lEdit7 = FindWindowEx(lMainHwnd, lEdit6, "ThunderRT6TextBox", vbNullString)'lEdit8 = FindWindowEx(lMainHwnd, lEdit7, "ThunderRT6TextBox", vbNullString)'lEdit9 = FindWindowEx(lMainHwnd, lEdit8, "ThunderRT6TextBox", vbNullString)'lEdit10 = FindWindowEx(lMainHwnd, lEdit9, "ThunderRT6TextBox", vbNullString)'lEdit11 = FindWindowEx(lMainHwnd, lEdit10, "ThunderRT6TextBox", vbNullString)'lEdit12 = FindWindowEx(lMainHwnd, lEdit11, "ThunderRT6TextBox", vbNullString)'lEdit13 = FindWindowEx(lMainHwnd, lEdit12, "ThunderRT6TextBox", vbNullString)'' CHAMADA DE CÓPIA' Call SendMessageByString(ThunderRT6FormDC, WM_SETTEXT, 0, Text1.Text)If lEdit3 ThenSendMessageString lEdit1, WM_GETTEXT, 256, sEdit1SendMessageString lEdit2, WM_GETTEXT, 256, sEdit2SendMessageString lEdit3, WM_GETTEXT, 256, sEdit3SendMessageString lEdit4, WM_GETTEXT, 256, sEdit4SendMessageString lEdit5, WM_GETTEXT, 256, sEdit5SendMessageString lEdit6, WM_GETTEXT, 256, sEdit6SendMessageString lEdit7, WM_GETTEXT, 256, sEdit7SendMessageString lEdit8, WM_GETTEXT, 256, sEdit8SendMessageString lEdit9, WM_GETTEXT, 256, sEdit9SendMessageString lEdit10, WM_GETTEXT, 256, sEdit10SendMessageString lEdit11, WM_GETTEXT, 256, sEdit11SendMessageString lEdit12, WM_GETTEXT, 256, sEdit12SendMessageString lEdit13, WM_GETTEXT, 256, sEdit13'TEXTBOX USADAS PARA CAPTURA DOS CAMPOSText15.Text = sEdit13Text14.Text = sEdit12Text13.Text = sEdit11Text12.Text = sEdit10Text11.Text = sEdit9Text10.Text = sEdit8Text9.Text = sEdit7Text8.Text = sEdit6Text7.Text = sEdit5Text4.Text = sEdit4Text3.Text = sEdit3Text5.Text = sEdit2Text6.Text = sEdit1End IfEnd Sub?Agora baseado nisso eu preciso colar esses dados dos textboxes em outro aplicativo ....só isso que me falta.. ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual comando enviaria o texto para um campo texto do delphi sendo que no campo delphi tenha as seguintes variáveis ...FWW me retornou no campo de texto do programa'API CallsPrivate Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongFunction GetMyWindow() as long'VariablesDim lParent as longDim lChild(1 to 2) as long'Get Parent WindowlParent = FindWindow("TPlaquetaManualAntiga", "PlaquetaManual Antiga")'Get Child Window(s)lChild(1) = FindWindowEx(lParent, 0, "TPanel", "")lChild(2) = FindWindowEx(lChild(1), 0, "TLabeledEdit", "")GetMyWindow = lChild(2)End Functione no title da janela me retornou ..'API CallsPrivate Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongFunction GetMyWindow() as long'VariablesDim lParent as long'Get Parent WindowlParent = FindWindow("TPlaquetaManualAntiga", "PlaquetaManual Antiga")'Get Child Window(s)GetMyWindow = lChildEnd Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi pouco mais vou aqui disponibilizar algo que vai lhe ajudar:

 

Copiar-

Private Sub Copiar_Click()		'BOTÃO COPIAR	'limpa o clipboard (área de transferência do Windows)	Clipboard.Clear		'copia o texto para o clipboard	Clipboard.SetText txtNota.SelTextEnd Sub

Colar-

Private Sub Colar_Click()		'BOTÃO COLAR	'transfere o conteúdo do clipboard para	'a caixa de texto	txtNota.SelText = Clipboard.GetText()End Sub

Tá aí, espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem que colar via API via sendmessage vou tentar dessa forma mais creio que não vai dar depois posto o resultado .pois acho que se esta vindo via api ele não fica na area de transferencia do windows .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta aí e traz o resultado ao tópico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, fiz um teste aqui com a calculadora do Windows. Veja se te ajuda. Cole o seguinte código em um módulo:

 

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As LongPrivate Const WM_GETTEXT = &HDPrivate Const WM_GETTEXTLENGTH = &HEPublic Function GetCalc() As Long	Dim lParent As Long	Dim lChild As Long	lParent = FindWindow("SciCalc", "Calculadora")	lChild = FindWindowEx(lParent, 0, "Edit", "")	GetCalc = lChildEnd FunctionPublic Function ObterTexto(ByVal h As Long) As String	Dim s As String	Dim tamanho As Long		tamanho = SendMessage(h, WM_GETTEXTLENGTH, 0, ByVal 0&) - 1		s = String(tamanho, Chr(0))		SendMessage h, WM_GETTEXT, 255, s		ObterTexto = sEnd Function

Depois, abra a calculadora e simplesmente faça (em um botão) no seu projeto:

 

MsgBox ObterTexto(GetCalc())

E o texto da calculadora deverá aparecer na caixa.

 

Certo? ;)

 

Graymalkin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou enviando o Fonte do meu programa no endereço abaixo é bom que serve pra outrar pessoas também .

Seguinte agora só falta colar no campo do delphi .

 

Em Anexo também em arquivos Formato TXT os parametros da janela do lugar onde eu quero colar os texto e o campo mesmo do texto se você puderem me ajudar me ajudem pois estou na fase final do programinha ...

 

http://rapidshare.com/files/39582512/1.rar.html

 

esse é o link do projeto e há é importante lembro o porque dos outros campos textos

é necessário para ser enviado para a outra janela .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom pessoal , a ajuda de vocês me orientaram a chegar a algumas conclusões as quais me fizeram resolver o programa , então deixo meu agradecimento a todos que escreveram suas idéias e também em breve para contribuir com o fórum iMasters vou deixar o fonte disponível pelo link rapidshare , afinal o programa conseguiu sincronizar os dados de cópia de uma janela para outra pode ser extremamente útil para outras aplicações visto que em sites como o VBcode e o Vbexplorer e outros de fontes já produzidos com métodos advanced .Agradeço a todos pelo apoio .Contato: mauricioperroni@gmail.com

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue para todos, a solução a qual eu cheguei e funciona.

100% testado ...

 

http://rapidshare.com/files/167221578/C_di...mpleto.rar.html

 

Abraço a todos

 

Puxa, isso que é uma pessoa de palavra, mais de uma ano depois, a maioria das pessoas que te ajudaram nem frequentam mais o fórum e você realmente postou seu código.

 

Meus parabéns...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.