Avatar billede zyber Nybegynder
11. januar 2003 - 14:28 Der 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.

Tak.
Avatar billede _darkstar_ Nybegynder
11. januar 2003 - 17:40 #1
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).
Avatar billede brobaek Nybegynder
13. januar 2003 - 17:56 #2
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.
Avatar billede michaelemanuel Nybegynder
14. januar 2003 - 14:59 #3
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.
Avatar billede brobaek Nybegynder
14. januar 2003 - 15:04 #4
Mbt. winsocks vær dog opmærksom på, at den port man åbner på tcp/udp er åben - det er en ret alvorligt sikkerhedsbrist...
Avatar billede michaelemanuel Nybegynder
14. januar 2003 - 15:10 #5
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.
Avatar billede zyber Nybegynder
20. januar 2003 - 12:55 #6
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.
Avatar billede websmith Nybegynder
20. januar 2003 - 13:01 #7
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 :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester