Ajuda VB

9374123

Membro
Boas

Preciso de uma ajudinha, tenho de fazer um programa, para me colocar um determinado valor, num campo de outro programa, é complicado fazer isso?

Cumps
 
neps é coisa mais Basica :D rapaz

No modulo Escreves assim Public cod As String

form1 fazes cod = Combo2(1).Text ou outra coisa qualquer
no form2 que queres passar metes Combo2(1).Text = cod
 
Se for para outro form do mesmo programa, é com o Ruben disse.
Se for para outro programa totalmente diferente, então não é mesmo nada trivial :P se tiveres sido tu a fazer esse outro programa, ainda pode ser que tentes arranjar forma de fazer ambos comunicarem, senão, não será mesmo nada fácil.
 
acho que é programa e não form. ;)
Se for para colocar dados de um programa para outro, ja vai ter que recorrer á API do Windows, pelo VB

Kay, nao é assim tao dificil. APenas terá que descobrir qual a janela do outro programa, e apanhar a textbox/whatever pelo handler, onde quer inserir o texto.
 
Última edição:
Boas

Sim, é para inserior um determinado valor, num campo de um programa diferente, e nao é feito por mim.

alguem me consegue uma ajudinha.

Contudo, Obrigado pela ajuda

Cumps
 
Boas

Vi o programa mas ainda nao o percebi. No entanto obrigado.

O que pretendo é um programa que me faça copy e depois paste, N vezes (por exemplo 40)

Alguem sabe como fazer?

Cumps
 
Hum.. é possivel..
Mas isso depende muito do tipo de class handler da aplicação que pretendes fazer esse processo.. se for tipo static segnifica que o valor do handler é sempre o mesmo..
Tens de abrir o "API Spy++" (utilitario que vem com o visual studio) captas o handler do objecto pretendido e verifica se ao reiniciar o aplicação o handler continua o mesmo..

Se sim, estás com sorte, depois so tens de utilizar umas APIs do tipo Remote Process Injection.. convertes a string para bytes array .. e injectas os dados para o processo..

Eu vou dar uma "vasculhada" nos meus arquivos (sei que tenho isso em algures) depois posto algo..

Compr.
 
Última edição:
Em um module poens isto:
Código:
Public Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long

No local prentendido corres esta API:
Código:
Call SendMessageByString(lngHwnd, &HC, 0&, strText)

Parametros:
lngHwnd = Handle (hWnd) do objecto
strText = O texto prentendido

PS: o Handle captas lo com o API Spy

Exemplo de um search por TextBox a partir do parent win (janela pricipal)
Código:
Function Search() As Long
 Dim ChildWin As Long
 Dim ParentWin As Long
 ParentWin& = FindWindow("ThunderRT6PictureBoxDC",vbNullString)
 ChildWin& = FindWindowEx(ParentWin&, 0&,"ThunderRT6TextBox",vbNullString)
 ChildWin = Search
End Function
 
[B]No module:[/B]
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Compr.
 
Última edição:
Back
Topo