Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1771
  • Last Modified:

VBScript with VB6: Calling global subs/functions

I am using VBscript in VB6, and what I want to do is actually call a GLOBAL function/sub without having to define the form so I can throw it in a global module. For example, I use VB6 to call a VBscript, in the VBScript called MyScript.vbs I have:

Function Test()
              Call test2()
End Function

test2 being in a module in my global script. I currently know you can do something like:

Function Test(whatform)
              Call whatform.test2()
End Function

To actually call something INSIDE a form, if 'whatform' has the function/sub.

Basicly what I am trying to do is have it so it's a global command, so my 'scripters' don't have to do anything additional, so they can call a function on VB6 side that are public. Get me? Including the example I'm using, it's modified a bit to run with my server so just remove anything additional if you want it. Currently frmServer is the frm it is called in, which is not public functions.
Public Sub Test(ByVal Index As Integer, ComArray() As String, Comi As Long)
 
            ScriptFileName = "MyScript.vbs"
            Dim StrScript As String
            Open App.Path & "\" & ScriptFileName For Binary Access Read As #1
                StrScript = String(LOF(1), 0)
                Get #1, , StrScript
            Close #1
            
            On Error Resume Next
            frmServer.SCShards.AllowUI = True
            frmServer.SCShards.UseSafeSubset = True
            frmServer.SCShards.Reset
            frmServer.SCShards.AddCode StrScript
            Dim shardtest As String
            If frmServer.SCShards.Procedures.Count > 0 Then
              shardtest = frmServer.SCShards.Run("Test", frmServer, userchp(Index))
            End If
            If Err.Number <> 0 Then MsgBox "Error: " & Err.Number & " (&H" & Hex(Err.Number) & ")" & vbNewLine & vbNewLine & Err.Description, vbExclamation
 
End Sub
 
Public Sub test2()
    MsgBox "Working"
End Sub

Open in new window

0
Valleriani
Asked:
Valleriani
  • 5
  • 2
1 Solution
 
VallerianiAuthor Commented:
Basicly, I want to be able to call functions in modules, not forms, using VBscript.
0
 
Guy Hengel [angelIII / a3]Billing EngineerCommented:
the vbscript is in .vbs files, right?
the vb6 is a compiled exe, in the end, right?
you will need to create "some" instance of the .exe (or better, a activeX-dll) to be able to call something from the vb6 project.

can you explain the big picture, here?
0
 
VallerianiAuthor Commented:
Ahh okay, well basicly, I have the server, and I want people to be able to script things (I will be having basic functions they can use, like SETHP, GETHP, etc.)

Basicly what I want for them to beable to call up functions for them to use in a VBscript, but I suppose I will have to use a activex-dll/form to do so? They would need to then call it like FORM.sethp(name) correct? For example?
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
VallerianiAuthor Commented:
As well, how would I use a activeX-dll exactly, I'm not sure I understand how to use those yet.
0
 
VallerianiAuthor Commented:
I'm still not sure how to use a active-x dll file. Currently I'm using a form to do this.;
0
 
JR2003Commented:
Once you have written your VB6 project to be an ActiveX dll with public functions you can use it like you would use any ActiveX object for example like the FileSystemObject. You just use the CreateObject function to create and instance of your ActiveX object
Set myObject = CreateObject("myActiveXObject")
The you use your object to access the public functions you have written
e.g.:
a = myObject.SETHP()
0
 
VallerianiAuthor Commented:
I understand now! Just a quick question as it finishes, can you call variables using this way within the project?
0
 
JR2003Commented:
You would have to write Properties within the class to access and set variables.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 5
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now