Gå til innhold

Kjøre kommandoer med et program


Anbefalte innlegg

Skrevet

Hallo

 

Går det ann på en måte å skrive inn en kommando i en tekst boks og trykke på en knapp så kjører den den kommandoen?

 

Private Sub Command1_Click()
dim tekst
tekst = text1.text

tekst

End Sub

Noen sånn som det, bare at det skal funke :p

Videoannonse
Annonse
Skrevet

Du mener å få til scripting? Jada, det er mulig, og dette ville være en lett metode for å få det til:

 

Private Sub Command1_Click()

Dim ScriptControl As Object

Set ScriptControl = CreateObject("MSScriptControl.ScriptControl")

ScriptControl.Language = "VBScript"
ScriptControl.AddCode Text1.Text

End Sub

 

Hvis Text1.Text er

 

Dim A

A = "Hello"

MsgBox A

 

Så vil det komme fram en MsgBox. De fleste funksjonene er tilgjengelig i VBScript, men hvis du f.eks skal endre på noe i form1 må du legge til dette før AddCode:

 

ScriptControl.AddObject "Me", Me, True

 

Nå vil det være mulig å skrive f.eks Me.Caption = "Hei".

Skrevet

Men nå funker jo ikke kommandoer som form2.show eller Form1.Height! Finnes det ikke noen måte hvor den bare tar teksten og setter den inn under knappen så den utfører akkurat det jeg skriver uten masse annet?

Skrevet

Det fungerer ikke slik i det hele tatt

 

Alt du skriver i kode vinduet blir kompilert til maskin kode og lagt i VisualBasic sitt program område(i minnet, og prosessoren) når du trykker på "Run"

En kan ikke bare ta en tekststring runtime og legge det til i koden.

 

Så da må du bruke et script, VBScript.

Ulempen med Scripts er at de ikke har full kontroll, og ikke direkte minne tilgang(siden scriptet blir regnet som et eget objekt)

Derfor må DU legge til objekter som scriptet skal ha tilgang til i ditt eget program..

Script.AddObject(Object as Variant) eller noe sånt noe.

Skrevet
Derfor må DU legge til objekter som scriptet skal ha tilgang til i ditt eget program..

Script.AddObject(Object as Variant) eller noe sånt noe.

Hvordan kan jeg gjøre det? det er ikke mange kommandoer jeg trenger..

Skrevet

Trodde jeg skrev det tydelig nok, men skal du kunne bruke objekter fra prosjektet ditt i scriptet må du legge det til, som dette:

 

Private Sub Command1_Click()

Dim ScriptControl As Object

Set ScriptControl = CreateObject("MSScriptControl.ScriptControl")

ScriptControl.Language = "VBScript"

' Hvis du skal legge til 2 former, form1 og form2, skriver du det slik:

ScriptControl.AddObject "Form1", Form1, True
ScriptControl.AddObject "Form2", Form2, True

' Alle objekter kan legges til, så har du en modul du vil bruke gjør du
' det samme.

ScriptControl.AddCode Text1.Text

End Sub

 

Funksjonen brukes slik:

AddObject [Navnet objektet får i scriptet], [objekt], [Om objektet skal være globalt, sett den til TRUE]

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...