Jump to content

Recommended Posts

Posted

existe alguma maneira que o programa que estamos a fazer mexa noutro programa, um programa qualquer que nao foi feito por nos...tipo abrir um ficheiro, copiar o contecudo e colar no nosso programa..mas abrir e copiar tem que ser mesmo no outro programa porque o abre de uma maneira especial...existe alguma maneira..

Posted

Se te estou a perceber, o que tu queres fazer é:

Tens um programa qualquer no teu pc, e esse programa tem p exemplo uma TextBox que tem um conteudo que te interessa, e, o teu objectivo é fazer um programa que conssiga esse valor dessa TextBox. Certo?

Cumps

Posted

certo..é isso, mas para copiar nao pode ser so um copy..tem q ser copy as hex string..o programa tem essa opção..e depois noutra altura queria colar e gravar, com a opçao past as hex strinfg..porque o copy e past normal nao servem para oque quero..

Posted

hhhhhmmmmm. Não sei o que é issu de "copy as hex string" 👍

Mas para ires buscar a conteudo de uma textbox ou de outra coisa desse tipo penso que tens de primeiro de tudo ter o handle dessa janela, depois o resto não sei  ?

Já vi qualquer coisa do tipo ai pelo forum, mas axu que nao era nada de muito especifico, de qualquer forma, pode ser que alguem saiba e te possa ajufar  😛

EDIT1: Andei a procurar e encontrei istu. O maximo que conssegui ainda fazer, foi ver o numero de caracteres que a textbox da outra aplicação tem. O texto ainda não  :wallbash:

EDIT2: Já conssegui 👍 . Se precisares de ajuda diz 👍

Cumps

Posted

Entao é assim...

Primeiro tens de encontrar o Handle da aplicação que queres retirar a informação. Podes fazer de duas formas(que eu conheça):

primeira:

lHwnd = FindWindow(vbNullString, cWINDOW_TITLE)

Onde lHwnd é a variavel As Long, onde é guardado o  Handle da aplicação. cWINDOW_TITLE é uma constante com o titulo da janela da aplicação.

segunda

Depois Tens de encontrar o Handle da textbox:

hTextBox = FindWindowEx(lHwnd, 0, vbNullString, vbNullString)

Onde hTextBox é a variavel onde o Handle da texbox sera guardado e lHwnd é o handle da janela da aplicação.

Depois Vai-se buscar o texto da texbox

VarText = Space(10)
TextLen = SendMessage(hTextBox, WM_GETTEXT, Len(VarText), ByVal VarText)

MsgBox Right(VarText, TextLen)

Onde VarText sera a variavel onde se ra guardada a informação da textbox, TextLen é o numero de caracteres que a textbox contem, WM_GETTEXT é como se fosse uma Flag, ou seja, atravez desta constante defines o que queres fazer, neste caso é copiar a informação da textbox.

Len(VarText) é o numero de caracteres que a função devera retornar.

Istu funciona, mas se por exemplo tiveres duas texbox's ele só te irá dar o valor da ultima que foi criada. Não sei como se escolhe o objecto :S

Penso que o "segredo" para resolver esse problema esta nesta linha ->hTextBox = FindWindowEx(lHwnd, 0, vbNullString, vbNullString), só que não sei procurar todos os handle de todos os objectos que estao na form :s

Bem... melhor que istu não sou capas de esplicar  ? . Desta materia tambem não sei muito, foi a primeira vez que fiz algo do genero  😛

P.S.

Não te esqueças de declarar as API's e as Constantes

Cumps

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.