Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Funktion in Hauptscript integrieren

Frage Entwicklung VB for Applications

Mitglied: RetroDude

RetroDude (Level 1) - Jetzt verbinden

04.06.2010 um 16:38 Uhr, 3422 Aufrufe, 2 Kommentare

Hallo. Ich habe zwecks Registrymutation einen Script gebastelt. Im Hauptscript wird überprüft, ob ein Flagkey existiert oder nicht. Falls dieser bereits existiert, macht er nix. Falls dieses Flag nicht existiert arbeitet er zwei separate Scripts ab, welche mit Hilfe einer Funktion gewährleisten, dass die gewünschten Keys inkl. Inhalt gelöscht werden. Anschliessend wird das Flag geschrieben. Nun zu meiner Frage. Was muss ich ändern um dies in ein und demselben Hauptscript zu tun? Meine Lösung funktioniert zwar, ist aber nicht wirklich elegant..
Bin für Anregungen dankbar!
Grüsse

' Hauptscript.vbs

Const HKEY_CURRENT_USER = &H80000001

strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & _
strComputer & "\root\default:StdRegProv")
Set WshShell = WScript.CreateObject("WScript.Shell")

strKeyPath = "SOFTWARE\ApplikationX\LaunchMethods"
strValueName = "Flag"
strValueName1 = "Dummykey"

objRegistry.GetStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,strValue

If IsNull(strValue) Then

objRegistry.SetStringValue HKEY_CURRENT_USER, strKeyPath, strValueName, strValueName1

WshShell.run "DEL_KEY1.VBS"
WshShell.run "DEL_KEY2.VBS"

Else

End If

' DEL_KEY1.vbs

Const HKEY_CURRENT_USER = &H80000001

Set wmiLocator = CreateObject("WbemScripting.SWbemLocator")

Set wshNetwork = CreateObject("WScript.Network")

Set wmiNameSpace = wmiLocator.ConnectServer(wshNetwork.ComputerName, "root\default")
Set objRegistry = wmiNameSpace.Get("StdRegProv")


sPath = "SOFTWARE\ApplikationX\LaunchMethods\DB1"

lRC = DeleteRegEntry(HKEY_CURRENT_USER, sPath)

Function DeleteRegEntry(sHive, sEnumPath)
lRC = objRegistry.DeleteKey(sHive, sEnumPath)

If (lRC <> 0) Then

On Error Resume Next

lRC = objRegistry.EnumKey(HKEY_CURRENT_USER, sEnumPath, sNames)

For Each sKeyName In sNames
If Err.Number <> 0 Then Exit For
lRC = DeleteRegEntry(sHive, sEnumPath & "\" & sKeyName)
Next

On Error Goto 0

lRC = objRegistry.DeleteKey(sHive, sEnumPath)

End If

End Function

' DEL_KEY2.vbs

Const HKEY_CURRENT_USER = &H80000001

Set wmiLocator = CreateObject("WbemScripting.SWbemLocator")

Set wshNetwork = CreateObject("WScript.Network")

Set wmiNameSpace = wmiLocator.ConnectServer(wshNetwork.ComputerName, "root\default")
Set objRegistry = wmiNameSpace.Get("StdRegProv")


sPath = "SOFTWARE\ApplikationX\LaunchMethods\DB2"

lRC = DeleteRegEntry(HKEY_CURRENT_USER, sPath)

Function DeleteRegEntry(sHive, sEnumPath)
lRC = objRegistry.DeleteKey(sHive, sEnumPath)

If (lRC <> 0) Then

On Error Resume Next

lRC = objRegistry.EnumKey(HKEY_CURRENT_USER, sEnumPath, sNames)

For Each sKeyName In sNames
If Err.Number <> 0 Then Exit For
lRC = DeleteRegEntry(sHive, sEnumPath & "\" & sKeyName)
Next

On Error Goto 0

lRC = objRegistry.DeleteKey(sHive, sEnumPath)

End If

End Function
Mitglied: bastla
04.06.2010 um 19:14 Uhr
Hallo RetroDude!

Sollte sich grundsätzlich etwa so machen lassen:
01.
' Hauptscript.vbs 
02.
 
03.
Const HKEY_CURRENT_USER = &H80000001 
04.
 
05.
strComputer = "." 
06.
Set objRegistry = GetObject("winmgmts:\\" & _ 
07.
strComputer & "\root\default:StdRegProv") 
08.
Set WshShell = WScript.CreateObject("WScript.Shell") 
09.
 
10.
strKeyPath = "SOFTWARE\ApplikationX\LaunchMethods" 
11.
strValueName = "Flag" 
12.
strValueName1 = "Dummykey" 
13.
 
14.
objRegistry.GetStringValue HKEY_CURRENT_USER,strKeyPath,strValueName,strValue 
15.
 
16.
If IsNull(strValue) Then 
17.
    objRegistry.SetStringValue HKEY_CURRENT_USER, strKeyPath, strValueName, strValueName1 
18.
    DEL_KEYS 
19.
End If 
20.
 
21.
'################# 
22.
Sub DEL_KEYS 
23.
 
24.
Set wmiLocator = CreateObject("WbemScripting.SWbemLocator") 
25.
Set wshNetwork = CreateObject("WScript.Network") 
26.
 
27.
Set wmiNameSpace = wmiLocator.ConnectServer(wshNetwork.ComputerName, "root\default") 
28.
Set objRegistry = wmiNameSpace.Get("StdRegProv") 
29.
 
30.
sPath = "SOFTWARE\ApplikationX\LaunchMethods\DB1" 
31.
lRC = DeleteRegEntry(HKEY_CURRENT_USER, sPath) 
32.
 
33.
sPath = "SOFTWARE\ApplikationX\LaunchMethods\DB2" 
34.
lRC = DeleteRegEntry(HKEY_CURRENT_USER, sPath) 
35.
 
36.
End Sub 
37.
 
38.
'################# 
39.
Function DeleteRegEntry(sHive, sEnumPath) 
40.
lRC = objRegistry.DeleteKey(sHive, sEnumPath) 
41.
 
42.
If (lRC <> 0) Then 
43.
    On Error Resume Next 
44.
    lRC = objRegistry.EnumKey(HKEY_CURRENT_USER, sEnumPath, sNames) 
45.
 
46.
    For Each sKeyName In sNames 
47.
        If Err.Number <> 0 Then Exit For 
48.
        lRC = DeleteRegEntry(sHive, sEnumPath & "\" & sKeyName) 
49.
    Next 
50.
 
51.
    On Error Goto 0 
52.
 
53.
    lRC = objRegistry.DeleteKey(sHive, sEnumPath) 
54.
 
55.
End If 
56.
 
57.
End Function 
58.
'#################
Eigentlich wäre die Verwendung des Unterprogrammes gar nicht nötig - Du könntest die Zeilen 24 - 34 einfach als Ersatz für den Aufruf in Zeile 18 einfügen ...

Grüße
bastla

P.S.: Falls Dir die von mir verwendete Formatierung für das Script auch besser gefällt: Quellcode, Code oder HTML Snippets ...
Bitte warten ..
Mitglied: RetroDude
08.06.2010 um 16:59 Uhr
Hallo Bastla

Danke! Funktioniert prima.

Gruss
Bitte warten ..
Ähnliche Inhalte
Windows Installation
PW vergeben mit der Installation und in das OS integrieren (5)

Frage von NAFNON zum Thema Windows Installation ...

LAN, WAN, Wireless
Dlink als WLAN Client ins netz integrieren (22)

Frage von fundave3 zum Thema LAN, WAN, Wireless ...

Batch & Shell
Problem mit Funktion und Combobox (7)

Frage von Druide83 zum Thema Batch & Shell ...

Windows Installation
gelöst Integrieren von .exe-Dateien in eine Windows 7-Installation möglich? (2)

Frage von Todybear zum Thema Windows Installation ...

Neue Wissensbeiträge
Sicherheit

How I hacked hundreds of companies through their helpdesk

Information von SeaStorm zum Thema Sicherheit ...

Erkennung und -Abwehr

Ccleaner-Angriff war nur auf große Unternehmen gemünzt

(10)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Sicherheit

Eventuell neue Lücke in Intels ME

Information von sabines zum Thema Sicherheit ...

Heiß diskutierte Inhalte
Humor (lol)
Freidach Beitrag (34)

Frage von Penny.Cilin zum Thema Humor (lol) ...

Windows 7
SSD - Win7 Lags (19)

Frage von ph5555 zum Thema Windows 7 ...

Humor (lol)
Wo ist der Fehler auf dem Bild? (17)

Information von the-buccaneer zum Thema Humor (lol) ...