VBScript in VB6 einbauen - wie?

Hallo,

ich habe das Problem, daß ich mit VB6 offenbar nicht mehr so einfach an die Registrierung rankomme, wie mit VBA. Nun fand ich aber die Möglichkeit, mit VBScript die Registrierung zu bearbeiten und frage mich jetzt natürlich, wie ich VBScript-Code in ein VB6-Projekt reinbekomme.
Eben habe ich mal mit dem ScriptControl kurz rumgespielt, aber bei Wscript.CreateObject macht er nicht mehr mit:

ScriptControl1.AddCode "Sub Main :
 Dim WSHShell As Object :
 Set WSHShell = Wscript.CreateObject(""WScript.Shell"") :
 MsgBox WSHShell.RegRead(""HKEY\_LOCAL\_MACHINE\Network\Logon\username"") :
 End Sub"
ScriptControl1.Run "Main"

Was kann man da machen bzw. wo ist der Haken bei der Geschichte? Direkt als *.vbs mit Doppelklick gestartet funktioniert der Code schließlich.

Danke,
Kristian

Hallo

Was VBScript kann kann VB schon lange :wink:

Wieso instanzierst Du nicht das DLL dirket von VB aus?
So z.b.:

sub Command1_Click()
Dim WSHShell As Object
Set WSHShell = CreateObject(„WScript.Shell“)
MsgBox WSHShell.RegRead(„HKEY_LOCAL_MACHINE\Network\Logon\username“)
end sub

Abgesehen davon kannst Du Die Registry auch durch die Windows API auslesen.
http://www.vbworld.net/registry/registry2/

Gruss Giuseppe

Was VBScript kann kann VB schon lange :wink:

Das hatte ich eigentlich auch gedacht, deshalb war ich etwas erstaunt, zumindest so direkt nichts zu finden (sprich: Hilfe).

Wieso instanzierst Du nicht das DLL dirket von VB aus? So z.b.:

> Sub Command1\_Click()  
> Dim WSHShell As Object  
> Set WSHShell = CreateObject("WScript.Shell")  
> MsgBox WSHShell.RegRead("HKEY\_LOCAL\_MACHINE\Network\Logon\username")  
> End Sub

Genau das hatte ich natürlich als erstes probiert, aber es ging nicht. Bei der Set-Anweisung machte er Schluß mit dem Hinweis, daß man ein Objekt benötige oderso. Auch ein Verweis auf das Scripting-Host-Teil half nicht. Ist ja auch nur das ScriptControl drin enthalten.
Frage also: Geht’s bei Dir? Dann sage mir bitte, was ich falsch mache! :wink:

Abgesehen davon kannst Du Die Registry auch durch die Windows API auslesen. http://www.vbworld.net/registry/registry2/

Genau. Und das ganze API-Zeug muß ich mir endlich mal aneignen. Das Problem hier war, daß ich zwar von den Funktionen RegCreateKey, RegDeleteKey undso wußte, aber nicht rausbekam, wie sie einzusetzen sind (welche Parameter undso). Kriegt man das irgendwo raus, a) was es so alles für API-Funktionen gibt, b) wo sie sich verstecken und c) wie die Syntax ist?

Danke jedenfalls erstmal für den Link, wird mir sicher gut weiterhelfen!

Kristian

Parameter undso). Kriegt man das irgendwo raus, a) was es so
alles für API-Funktionen gibt, b) wo sie sich verstecken und

SChau mal in die MSDN die bei VB6 mitgeliefert wird

c) wie die Syntax ist?

Der API Viewer der auch bei VB6 beiliegt hilft Dir bei dem erstellen der Syntax für die Deklaration. Den Rest siehst Du in der MSDN

Micha

Schau mal in die MSDN die bei VB6 mitgeliefert wird

Ich sollte sie mehr nutzen … :wink:

Der API Viewer der auch bei VB6 beiliegt …

API Viewer … interessant. Werde mich mal auf die Pirsch begeben.

Danke!
Kristian

Schau mal in die MSDN die bei VB6 mitgeliefert wird

Ich sollte sie mehr nutzen … :wink:

LOOOOOL :smile:

Betr.: ApiViewer:
Das Tool nennt sich genau:

Api-Text Viewer (APILOAD.exe)

Danke, ich schau mal nach :smile: - o.T.
o.T.

Hallo,

  1. Lösungen ohne API

Verweis bilden Visual Basic for Application
(wenn nicht schon geschehen)

dann such mal im Objektbrowser nach Getsetting

oder

Verweis bilden auf Windows Script Host Object Modell

dann folgenden code
Dim WSH As New IWshShell_Class
Dim s As String

s = WSH.RegRead(„HKEY_LOCAL_MACHINE\Network\Logon\username“)

also bei mir funtz es.

MFG CB

dann such mal im Objektbrowser nach Getsetting

Damit kommt man nur an die für VB reservierten Bereiche ran. Trotzdem guter Tip.

oder Verweis bilden auf Windows Script Host Object Modell
dann folgenden code
Dim WSH As New IWshShell_Class
Dim s As String
s = WSH.RegRead(„HKEY_LOCAL_MACHINE\Network\Logon\username“)

Ersteres war ja erfolgt, aber das mit dem Objekt klappte nicht. Ich werde statt dessen mal die IWshShell_Class ausprobieren. Woher soll man die nun wieder kennen, wenn nicht aus dem WeWeWa?! :wink:

Danke!
Kristian