Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Slanje poruka drugom programu?

[es] :: Visual Basic 6 :: Slanje poruka drugom programu?

[ Pregleda: 2078 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Slanje poruka drugom programu?27.07.2004. u 01:25 - pre 240 meseci
Evo sta me interesuje:
Napisao sam program koji koristi pluginove. I to na sledeci nacin: prvo unzipuje plugin, onda procita .wtp fajl u kome je naznaceno koje kontrole treba da se postave (u glavnom programu) i sta treba da se postavi za te kontrole (x, y, w, h, caption,...). I kada se izvrsi neki event, npr. klikne se na dugme: salje se poruka pluginu koji, kada je procita izvrsi neku operaciju.
E sve to lepo radi, samo sto trenutno izmedju glavnog programa i plugina komuniciram preko jednog ini fajla (!).

Zna li neko kako mogu da saljem poruke iz jednog programa u drugi preko nekih API funkcija ili slicno? Ja sam prvo razmisljao da sve to radim preko clipboarda, ali to nije bas zgodno...

Hvala unapred!
 
Odgovor na temu

komptrade
Vranje

Član broj: 16413
Poruke: 322
195.252.87.*



Profil

icon Re: Slanje poruka drugom programu?27.07.2004. u 07:17 - pre 240 meseci
Mozes li da mi objasnis kako da napravim da moj program ima pluginove?
Citao sam u onoj temi ali mi nije bas jasno.
Molim te ako mozes ovde samo copy/paste taj kod i tvog projekta.

Hvala.
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.bg.wifi.vline.verat.net.

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: Slanje poruka drugom programu?27.07.2004. u 09:31 - pre 240 meseci
A sta ti je taj addin, VB projekat, ActiveX EXE, ActiveX DLL? Napravi da bude AxEXE ili DLL, onda kreiras neki objekat iz njega i tu onda imas propertyje, evente, ...i na taj nacin dve komponente komuniciraju
 
Odgovor na temu

Mashinovodja
Beograd

Član broj: 30447
Poruke: 36
62.108.97.*



Profil

icon Re: Slanje poruka drugom programu?27.07.2004. u 11:37 - pre 240 meseci
Po mom mišljenju, najlakši način da VB program komunicira s plug-inom jeste da taj plug-in bude napisan kao ActiveX EXE ili DLL komponenta koja izlaže određena javna svojstva i metode. Otprilike kao kada u VB aplikaciji pozivaš Excel/Word da bi generisao ili izmenio Excelov/Wordov dokument, ili pokreneš Outlook da bi poslao mail.
 
Odgovor na temu

komptrade
Vranje

Član broj: 16413
Poruke: 322
195.252.87.*



Profil

icon Re: Slanje poruka drugom programu?27.07.2004. u 16:16 - pre 240 meseci
Hvala ti na odgovoru ali ja pojma nemam o tome.

Mozes li da mi objasnis korak po korak , kako da to uradim?

Ili ako moze neko drugi , @mladenovicz ili @krckoorascic
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Slanje poruka drugom programu?28.07.2004. u 01:50 - pre 240 meseci
Prvo da kažem da mi je ovo prvi program i da na njemu učim VB.
Tako da još uvek ne znam da radim sa DLL-ovima, ActiveX EXE i drugim kontrolama ...
Meni treba kako da pošaljem npr ovakvu poruku:
Code:

CommandButton,1,Click

...

->komptrade:
evo kako ja to radim (mnogo prosto):
Imam plugin koji se sastoji iz običnog ini fajla, koji izgleda nešto ovako:
Code:

[Plugin]
Ime=Onemogući Regedit
OS=Svi Windowsi
UkupnoKontrola=2
Kontrola1=OptionButton
Kontrola2=OptionButton
Unload=Restart
Info=Uz pomoć ovog tweak-a možete da zabranite pokretanje regedit.exe-a i .reg fajlova.~~Važno:~Ovo neće onemogućiti WinTweaker!

[Kontrola1]
X=2000
Y=500
W=3000
H=300
Caption=Omogući Regedit

[Kontrola2]
X=2000
Y=1000
W=3000
H=300
Caption=Onemogući Regedit



Kako možeš da vidiš u Plugin delu imam neke informacije o pluginu (moj program služi za optimizaciju regietry baze, pa zato koristim OS...) izmedju ostalih i brojkontrola koje treba da se učitaju. Zatim ide Kontrola1 i Kontrola2 (gde su upisani tipovi kontrola koje treba da se učitaju). Posle Plugin dela za svaku kontrolu podešavam neke parametre (svaki tip kontrole ima svoje parametre i default vrednosti za iste ako nije naznačeno u pluginu).
A evo kako u glavnom programu čitam plugin:
Code:

Public Sub UcitajPlugin(MainPlugin As String)
On Error Goto error_handler

Dim brKontrola As String, Kontrola As String

  brKontrola=GetProfile("Plugin", "UkupnoKontrola", vbNullString, MainPlugin)
  
  For i = 1 To CInt(brKontrola)
   Kontrola=GetProfile("Plugin", "Kontrola" & i, vbNullString, MainPlugin)
   UcitajKontrolu Kontrola, CInt(i), MainPlugin
 Next i

Exit Sub
error_handler:
MsgBox GetMsg(15)
End Sub

Private Sub UcitajKontrolu(tip As String, index As Integer, resource As String)
Dim br As Integer
With frmMain  
 Select Case tip
     Case "OptionButton"
         br = .Control_OptionButton.UBound + 1
         Load .Control_OptionButton(br)
         .Control_OptionButton(br).Left = GetProfile("Kontrola" & index, "X", "0", resource)
            .Control_OptionButton(br).Top = GetProfile("Kontrola" & index, "Y", "0", resource)
            .Control_OptionButton(br).Width = GetProfile("Kontrola" & index, "W", "1000", resource)
            .Control_OptionButton(br).Height = GetProfile("Kontrola" & index, "H", "300", resource)
            .Control_OptionButton(br).Caption = GetProfile("Kontrola" & index, "Caption", vbNullString, resource)
            .Control_OptionButton.Enabled = CBool(GetProfile("Kontrola" & index, "Enabled", "1", resource))
      Case "CommandButton"
         'Slični je i za CommandButton, ne mogu više da kucam...
       End Select
End With
End Sub


I to je to oko učitavanja kontrola (nadam se da si me razumeo).
Drugi fajl koji ulazi u sastav mog plugina je ustvari običan VB program koji ima samo modul. Poziva se kada se plugin učita i gasi se kada se učita neki drugi ili kada se izlazi iz programa.
Ja na formi imam jedan commandbutton cmdTweak koji služi da se napravljene promene unesu u regedit. u Click eventu za cmdDefault imam ovo:
Code:

Posalji "Tweak"

'a imam ovakav sub:
Public Sub Posalji(poruka As String)
WriteProfile("MessageCenter", "Poruka", poruka, TempDir & "send.tmp")
End Sub


I kada plugin vidi promenu u send.tmp fajlu čita poruku i slično kao u UcitajKontrolu() sub-u, uz pomoć Select Case i Split funkcija uperedjuje primljenu poruku sa mogućim rešenjima. U ovom slučaju kada primi poruku "Tweak" tražiće od glavnog programa value parametar za optionbutton (samo jedan, u ovom slučaju nema potrebe da ga pita za obe kontrole...) i kada ga dobije uneće to u registry...

Ne znam dal si me išta razumeo, ako hoćeš mogu da ti pošaljem moj program (i ceo projekat za njega) kada ga završim?

Pozdrav svima!


 
Odgovor na temu

komptrade
Vranje

Član broj: 16413
Poruke: 322
195.252.87.*



Profil

icon Re: Slanje poruka drugom programu?28.07.2004. u 07:07 - pre 240 meseci
Hvala ti puno!

Sad cu da probam da uradim...
 
Odgovor na temu

[es] :: Visual Basic 6 :: Slanje poruka drugom programu?

[ Pregleda: 2078 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.