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)
vb.net komunikacija izmedju 2 aplikacije
Zaključano
Zakačeno
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.
izmenjeno 1 put, poslednji put perolozac123 27.06.2008. u 20:26
Izmene poruke
- perolozac12327.06.2008. u 20:26zapis iz teksta poruke
Zahvaljujem nasao sam sta mi treba
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
Imas primer ovde: Create a Intra-Application Named Pipe using WCF in .Net
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Hvala na post-u
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?
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?
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.
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.
Potpis
Nije važno stići prvi. Važno je prvo da stigneš.
Citat:
@bunker
Mislim da direktno iz jedne aplikacije u drugu (pozivanjem klase ili metode) neces moci.
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
Potpis
Viva lollapalooza
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
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
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
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
Potpis
Viva lollapalooza
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.
Ako neko ima prmer coda bio bih veoma zahvalan, u svakom slucaju hvala vam na pomoci.
Pa, dadose ti ljudi linkove ka primerima
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.
Mozda sam naporan ali sta sve nisam pokusao i jos nisam uspeo.
'Ajde da ti pomognemo, ali reci sta si pokusao i sta nece.
Koji si metod za komunikaciju koristio?
Koji si metod za komunikaciju koristio?
Potpis
Nije važno stići prvi. Važno je prvo da stigneš.
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.
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.
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.
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.
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.
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Citat:
A moze i ovako : Sto manje znam manje ce da boli !!!
Potpis
Viva lollapalooza
"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 :)
mmix, hvala na opsirnom odgovoru, ubio si me ko granom, upravo razmisljam sto li sam uopste i poceo da ucim vb :)
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)
to je relativno jednostavno da se implementira i provereno radi posao (ja sam davno koristio taj metod da komuniciram izmedju dve VB aplikacije)
hvala na postu, probacu i to :)
nalog od kolege :)
nalog od kolege :)