Hallo Kerstin
Bin mir nicht ganz sicher ob ich verstehe was du meinst, aber wenn es darum geht, dass du Code verwenden willst, der in einem anderen File steht, dann kann ich dir das hier vorschlagen.
Der Gedanke dahinter ist, dass du nicht das Objekt übergibst, sondern die Prozeduren und Funktionen von der anderen Datei reinholst.
Der Code für's reinfetzen ist - wie du siehst - nicht von mir. Aber er tut, vielleicht tut er eben auch grad deswegen
Programmablauf
Ich erstelle ein Folderobjekt [Set demofolder = filesys.GetFolder("C:\temp")] im Main.vbs. Dieses wird dann an eine Prozedur Folderinfo im Sub.vbs File übergeben. D.h. eigentlich eben nicht, das Sub.vbs File steht komplett im Main.vbs Programmcode. Analog einem Include im Web.
Annahmen:
Ich gehe davon aus, dass es ein C:\temp Verzeichnis gibt und dass meine beiden Beispieldateien im gleichen Folder (e.g. C:\temp) liegen.
Hmm.. hoffe das war irgendwie verständlich ...
Lass mich wissen, ob tut ^^ und sonst nachfragen ..
gruss
moll
P.S. Ach ja, das war so ein schneller Schuss. Vielleicht gibt's auch noch andere Lösungen ...
----------------------- main.vbs ------------------------------
Option Explicit
Dim filesys, demofolder
' Test program for the IncludeFile and ReadConfigFile functions.
' Author: Christian d'Heureuse (
sourcecode.biz - Professional Source Code for Software Developers)
Dim fso: set fso = CreateObject("Scripting.FileSystemObject")
' Includes a file in the global namespace of the current script.
' The file can contain any VBScript source code.
' The path of the file name must be specified relative to the
' directory of the main script file.
Private Sub IncludeFile (ByVal RelativeFileName)
Dim ScriptDir: ScriptDir = fso.GetParentFolderName(WScript.ScriptFullName)
Dim FileName: FileName = fso.BuildPath(ScriptDir,RelativeFileName)
IncludeFileAbs FileName
End Sub
' Includes a file in the global namespace of the current script.
' The file can contain any VBScript source code.
' The path of the file name must be specified absolute (or
' relative to the current directory).
Private Sub IncludeFileAbs (ByVal FileName)
Const ForReading = 1
Dim f: set f = fso.OpenTextFile(FileName,ForReading)
Dim s: s = f.ReadAll()
ExecuteGlobal s
End Sub
IncludeFile "sub.vbs"
Set filesys = CreateObject("Scripting.FileSystemObject")
Set demofolder = filesys.GetFolder("C:\temp")
Folderinfo demofolder
-------------------------- sub.vbs ----------------------
Sub Folderinfo(meinObjekt)
wscript.echo "Erstelldatum: " & meinObjekt.DateCreated
end Sub