11. januar 2003 - 14:28Der er
6 kommentarer og 1 løsning
Fang event i anden applikation
Er det muligt at sende events fra en applikation til en anden ?
Jeg sidder og skal have et program til at reagere på hvad der sker i et andet program. Helt specifikt går det ud på at jeg skal vise et billede og noget data når hoved programmet skifter record. Problemet er bare at jeg ikke har adgang til kode i hoved programmet, men kan få programørerne til at lave små ændringer hoved programmet. Så vil jeg selv lave et program der fanget events fra hoved programmet således at jeg kan vise det data jeg har lyst til.
Jeg vil gerne have noget source kode på et eksempel.
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Det kan man godt, men ikke nødvendigvis liige i form af events. Jeg er ikke så stiv i Windows-IPC, men jeg mener at du bliver nødt til at kigge på nogle named pipes.
Named pipes udgør i princippet blot en slags datastrøm fra en applikation til en anden. Prøv at slå det op på msdn (msdn.microsoft.com - søg efter "named pipes example" eller noget i den stil).
En primitiv løsning er, at "hovedprogrammet" har skriveadgang til enten en fil eller en database (evt. registrerings-databsen, men ikke tilrådeligt), som dit program så kan læse i, ex.
Problemet er nok, at programmørerne af hovedprogrammet ikke er helt tilfredse med den løsning.
Named pipes virker kun under WinNT, WinXP og Win2000 Du kan ikke oprette named pipes under Win95, Win98 og WinMe. Derudover kræver named pipes at du roder med besværlige API kald.
Indbygget i VB er en Control til WinSocket Sæt kryds i : Project / Components [x] Microsoft Winsock Control
Herefter kan du foretage kommunikation mellem dine forskellige programmer v.h.a. TCP/IP eller UDP.
Der er masser af hjælp i VB til WinSocket kontrollen. Blot klik på WinSocket kontrollen og tryk F1.
Det er ikke en sikkerhedsbrist hvis de computere du kommunikerer imellem er på en internt netværk, beskyttet af firewalls, m.m.
Men hvis løsningen skal kommunikere over et åbent netværk, som f.eks. internettet, så kræves en anden løsning, men ud fra beskrivelsen tyder det ikke på at dette er tilfældet.
Har selv tænkt på at sende beskeder via UDP, og da begge programmerne skal køre på en maskine skulle der værken være problemmer med sikkerhed eller pakker der forsvinder.
Tjoeh, man kunne jo også bare lave det via COM, dvs. bede programmørerne om at eksponere et par funktioner via COM, som du så ville kunne bruge fra visual basic. På den måde ville det kunne laves uden at bruge andet end standard kald.
Winsock programmering er ikke nem, og da slet ikke i Visual Basic :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.