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!