Gå til innhold

Data utveksling mellom 2 VB prog.


Anbefalte innlegg

Hei!!

 

2 VB program kjører på samme maskin samtidig, hvordan kan man utveksle data mellom disse programmene. Jeg vil ikke mellomlagre data på fil, men ha "tilgang" til variabel verdiene direkte i det ene programmet fra det andre.

 

:o

Lenke til kommentar
Videoannonse
Annonse

Lim dette inn i en modul:

 


Option Explicit



Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)



Public Const WM_MESSAGE = &H11223

Public Const GWL_WNDPROC = (-4)



Dim PrevProc As Long



Public Sub HookForm(F As Form)



PrevProc = SetWindowLong(F.hwnd, GWL_WNDPROC, AddressOf WindowProc)

   

End Sub



Public Sub UnHookForm(F As Form)



SetWindowLong F.hwnd, GWL_WNDPROC, PrevProc

   

End Sub



Public Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

   

Dim Buff$

   

WindowProc = CallWindowProc(PrevProc, hwnd, uMsg, wParam, lParam)

   

If uMsg = WM_MESSAGE Then

Buff = Space(wParam)

CopyMemory Buff, ByVal lParam, wParam

MsgBox Buff

End If

   

End Function



Public Sub Send(WindowClass As String, WindowCaption As String, Data As String)



Dim Wnd&



Wnd = FindWindow(WindowClass, WindowCaption)

If Wnd = 0 Then Exit Sub



SendMessage Wnd, WM_MESSAGE, LenB(Data), Data



End Sub

 

Start så ved å legge til


Hookform Me

 

i Form_Load i formen som skal mota dataen.

 

I Form_Unload skal dette legges til:


Unhookform Me

 

 

Gjør så det samme i det andre prosjektet. For å sende data må du bruke sub-en Send som skal brukes slik:

 

Send "ThunderFormDC", <den andre formens caption>, <tekst>

 

Ersatt "MsgBox Buff" med de kodene du trenger. Buff er på det tidspunktet dataen du sente.

Lenke til kommentar
  • 2 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...