[ perolozac123 @ 26.06.2008. 21:51 ] @
Da li je moguce izvesti komunikaciju izmedju dve aplikacije, recimo da prva aplikacija prosledi neku vrednost drugoj aplikaciji ili pozove event druge aplikacije? (govorim o exe file-ovima)
[ Shadowed @ 27.06.2008. 00:34 ] @
Naravno, i nacini su brojni. TCP/IP (sa gomilom razradjenih protokola kroz njega), named pipes, DDE (mislim da je ovo jos uvek pordzano) su samo neki od tih nacina.
[ perolozac123 @ 27.06.2008. 19:10 ] @
Zahvaljujem nasao sam sta mi treba

[Ovu poruku je menjao perolozac123 dana 27.06.2008. u 20:26 GMT+1]
[ mmix @ 27.06.2008. 19:26 ] @
AKo koristis novi framework (3.0+) mozes da iskoristi WCF da kreiras komunikacioni kanal preko named pipes.

Imas primer ovde: Create a Intra-Application Named Pipe using WCF in .Net
[ perolozac123 @ 27.06.2008. 20:56 ] @
Hvala na post-u
[ perolozac123 @ 29.06.2008. 22:46 ] @
Mislio sam da sam nasao ono sto mi treba :) moja greska

Koristim vb.net 2005 i koliko sam shvatio ne mogu koristiti DDE

Ono sto meni treba je sledece: u prvoj aplikaciji recimo imam textbox i hteo bih da iz druge aplikacije unesem neki tekst u taj textbox. Moze li mi neko dati code?
[ bunker @ 30.06.2008. 12:53 ] @
Pa ne moze bas kako si zamislio. Nije to samo parce koda, trebalo bi da razradis mehanizam.

Pomenuli su ti ljudi TCP, ja dodajem Message Queueing, mada ti za ovo treba dodatna komponenta u Windows-u.

Mislim da direktno iz jedne aplikacije u drugu (pozivanjem klase ili metode) neces moci.
[ deerbeer @ 30.06.2008. 13:37 ] @
Citat:
@bunker
Mislim da direktno iz jedne aplikacije u drugu (pozivanjem klase ili metode) neces moci.

Tacno .. potpuna medjuprocesna komunikacija pod Windows-om je moguca samo kroz TCP/UDP protokole ..
a ako hoces da iskopiras tekst tj. neki string iz jednog u drugi program onda je to moguce odraditi preko sistemske poruke WM_COPYDATA
ako zelis da zaobidjes pomenute protokole

MSDN - WM_COPYDATA
http://msdn.microsoft.com/en-us/library/ms649011(VS.85).aspx

Ovde je primer bas ono sto ti treba
http://www.codersource.net/mfc_ipc_wm_copydata.aspx

Primer je u C#-u mada mozes i sam da prekodiras za vb.net
http://www.codeproject.com/KB/cs/wm_copydata_use.aspx
[ mmix @ 30.06.2008. 14:27 ] @
Citat:
deerbeer: Tacno .. potpuna medjuprocesna komunikacija pod Windows-om je moguca samo kroz TCP/UDP protokole ..


Netacno, postoje razni nacini za medjuprocesnu komunikaciju i TCP/UDP je samo jedna od njih, inace najneoptimalnija zbog velikog overhead-a. Pored toga direktna komunikacije moze da se obavi i kroz named pipes i shared memory blokove. Sta vise .NET remoting ima punu podrsku za remoting preko named pipes kroz IpcChannel, tako da mozes cak direktno da pozivas metode i generises remote klase preko pipe-ova.
Primer: Using Remoting IpcChannel in Framework 2.0



[ deerbeer @ 30.06.2008. 15:06 ] @
Citat:
mmix: Netacno, postoje razni nacini za medjuprocesnu komunikaciju i TCP/UDP je samo jedna od njih, inace najneoptimalnija zbog velikog overhead-a. Pored toga direktna komunikacije moze da se obavi i kroz named pipes i shared memory blokove. Sta vise .NET remoting ima punu podrsku za remoting preko named pipes kroz IpcChannel, tako da mozes cak direktno da pozivas metode i generises remote klase preko pipe-ova.
Primer: Using Remoting IpcChannel in Framework 2.0


Kad sam rekao TCP/UDP izostavio sam Named Pipes (moja greska) jer znam da moze jer je bilo na ASP.NET forumu price o IpcChannel-u ..
A sto se tice Shared Memory blokova nisam siguran (nisam nikad ni probao da budem iskren)
koliko su fleksibilni i dobri za takvu realizaciju zato sam i spomenuo "potpuna medjuprocesna komunikacija na Windows-u"
jer je moguce i kroz WM_COPYDATA al je veoma nepraktican i ogranicen u vecini slucajeva
[ perolozac123 @ 30.06.2008. 21:55 ] @
Uh, probacu da nabudzim nesto pa cu javiti sta sam uradio

Ako neko ima prmer coda bio bih veoma zahvalan, u svakom slucaju hvala vam na pomoci.
[ Shadowed @ 30.06.2008. 23:13 ] @
Pa, dadose ti ljudi linkove ka primerima
[ perolozac123 @ 01.07.2008. 17:40 ] @
Znam i zahvalan sam na tome, mislio sam da ako neko ima gotov code mogao bi da nakaci.

Mozda sam naporan ali sta sve nisam pokusao i jos nisam uspeo.
[ bunker @ 02.07.2008. 08:13 ] @
'Ajde da ti pomognemo, ali reci sta si pokusao i sta nece.

Koji si metod za komunikaciju koristio?
[ perolozac123 @ 02.07.2008. 22:50 ] @
dosao sam do zakljucka: bolje je znati manje i redje nego vise i cesce :)

danas sam definitivno odustao od direktne komunikacije izmedju dve aplikacije, ono sto meni treba odradicu sa FileSystemWatcher, mislim da je mnogo jednostavnije da na izabranom folderu pratim promene a iz druge aplikacije punim taj folder recimo xml file-ovima.
[ mmix @ 03.07.2008. 08:12 ] @
Ah, cuveni "swivel chain integration"

Zakljucak ti je los, bolje bi bilo i za tebe i za tvoju distribuiranu aplikaciju da naucis nesto o IPC sistemima i remotingu nego sto se oslanjas na taj komunikacioni kanal (razmena fajlova preko FSa) nad kojim nemas nikakvu transakcionu kontrolu; od svih mogucih IPC sistema izabrao si najlaksi i najgori.

Citat:
deerbeer: A sto se tice Shared Memory blokova nisam siguran (nisam nikad ni probao da budem iskren) koliko su fleksibilni i dobri za takvu realizaciju zato sam i spomenuo "potpuna medjuprocesna komunikacija na Windows-u"


Pa nisu fleksibilni, u principu se ponasaju kao gornji sistem sa prebacivanjem fajlova, samo se zaobilazi disk sistem i sve se radi u memoriji. Shared memory block nije nista komplikovano, isto parce fizicke memorije lockovano u dva virtuelna adresna prostora u dva procesa i na to nakacen jedan mutex koji kontrolise trenutno "vlasnistvo" nad blokom, nalik na koriscenje lock() za multi-threaded kontrolu. Problem je naravno sto sistem nije bas pametan, nema nikakve transakcione kontrole, nema nacina da znas da li je blok ili nije dobio nove informacije sem da ga periodicno proveravas ili da implementiras neki Event based sistem za notifikaciju.

[ deerbeer @ 03.07.2008. 11:19 ] @
Citat:
perolozac123: dosao sam do zakljucka: bolje je znati manje i redje nego vise i cesce

A moze i ovako : Sto manje znam manje ce da boli !!!
[ perolozac123 @ 03.07.2008. 22:24 ] @
"Pa nisu fleksibilni, u principu se ponasaju kao gornji sistem sa prebacivanjem fajlova, samo se zaobilazi disk sistem i sve se radi u memoriji. Shared memory block nije nista komplikovano, isto parce fizicke memorije lockovano u dva virtuelna adresna prostora u dva procesa i na to nakacen jedan mutex koji kontrolise trenutno "vlasnistvo" nad blokom, nalik na koriscenje lock() za multi-threaded kontrolu. Problem je naravno sto sistem nije bas pametan, nema nikakve transakcione kontrole, nema nacina da znas da li je blok ili nije dobio nove informacije sem da ga periodicno proveravas ili da implementiras neki Event based sistem za notifikaciju."

mmix, hvala na opsirnom odgovoru, ubio si me ko granom, upravo razmisljam sto li sam uopste i poceo da ucim vb :)
[ Aleksandar Ružičić @ 04.07.2008. 06:39 ] @
zasto jednostavno ne bi koristio RegisterWindowMessage i BroadCastSystemMessage api-je i onda subclassovao obe forme za tu custom poruku koju bi registrovao iz obe aplikacije...

to je relativno jednostavno da se implementira i provereno radi posao (ja sam davno koristio taj metod da komuniciram izmedju dve VB aplikacije)
[ djdzo @ 04.07.2008. 15:50 ] @
hvala na postu, probacu i to :)

nalog od kolege :)