Hallo zusammen,
bin nun seit zwei Tagen an einem Problem dran was ich versuche mit VBS zu lösen.
Zu erst ein mal mein Ziel:
Habe ein Programm, welches beim starten schaut ob ein Aufnahmegerät angeschlossen ist und ob ein Ausgabegerät für den Sound vorhanden ist.
Ansich ja nicht schlecht. Problem ist, dass man mit dem Programm Audiobeiträge bearbeiten kann. Das Programm geht infolge dessen davon aus, dass ein Mikro vorhanden ist. Daher diese Abfrage nach den angeschlossenen Geräten.
Das Programm kann ich zum einem Hardwareseitig täuschen oder aber über Windows. Hardwareseitig ist aber zu aufwendig und kann auch schnell teuer werden. Daher ist es einfacher die Softwarelösung zu benutzen.
Diese sieht wie folgt aus:
Unter Windows die Aufnahmegeräte anzeigen lassen.
Dort dann über Rechtsklick "Deaktivierte Geräte anzeigen" alles anzeigen lassen.
Dann taucht auch das Gerät Stereomix auf. Wenn ich dieses dauerhaft aktiviere wird das oben erwähnte Programm ausgetrickst und denkt es sei alles was benötigt angeschlossen. Da ich keine Lust habe an etwa 500 Rechner hin zu gehen um dort diese Einstellung vorzunehmen war die Idee da es per Script auszuführen.
Habe daraufhin in der Windows Registry den Pfad gefunden welchen ich ändern muss um die gewünschte Einstellung zu setzen.
Habe auch schon etwas angefangen mit dem Programm nur komm ich nicht weiter warum es nicht Funktioniert.
Bin aber auch offen für andere Ideen und Sprachen. Jedoch sind meine Kenntnisse zur Zeit noch stark begrenzt weshalb ich auf die Hilfe von anderen angewiesen bin.
Unter dem Pfad "Capture" befinden sich halt einige cryptische Schlüssel ({26b826f7-f8ae-491c-b83b-c9248476f7b1})
Leider sind diese Schlüssel von Rechner zu Rechner unterschiedlich viele und auch unterschiedlich benannt.
In diesen Werten befinden sich Dezimalwerte(268435460).
Das Programm soll also die Schlüssel finde mit dem Inhalt 268435457 und diese dann durch eine 1 ersetzen.
Das ganze spielt sich unter Windows 7 64 Bit ab.
Herzlichen Dank schon einmal vor ab.
P.S. : Der bisherige Code wurde mittels Anfängerkenntnissen und ein wenig Hilfe von Dr. Google erstellt.
EDIT: Fehler aktuell ist übrigens, dass er nicht in die if abfrage kommt, da strValue keinen Wert bekommt
bin nun seit zwei Tagen an einem Problem dran was ich versuche mit VBS zu lösen.
Zu erst ein mal mein Ziel:
Habe ein Programm, welches beim starten schaut ob ein Aufnahmegerät angeschlossen ist und ob ein Ausgabegerät für den Sound vorhanden ist.
Ansich ja nicht schlecht. Problem ist, dass man mit dem Programm Audiobeiträge bearbeiten kann. Das Programm geht infolge dessen davon aus, dass ein Mikro vorhanden ist. Daher diese Abfrage nach den angeschlossenen Geräten.
Das Programm kann ich zum einem Hardwareseitig täuschen oder aber über Windows. Hardwareseitig ist aber zu aufwendig und kann auch schnell teuer werden. Daher ist es einfacher die Softwarelösung zu benutzen.
Diese sieht wie folgt aus:
Unter Windows die Aufnahmegeräte anzeigen lassen.
Dort dann über Rechtsklick "Deaktivierte Geräte anzeigen" alles anzeigen lassen.
Dann taucht auch das Gerät Stereomix auf. Wenn ich dieses dauerhaft aktiviere wird das oben erwähnte Programm ausgetrickst und denkt es sei alles was benötigt angeschlossen. Da ich keine Lust habe an etwa 500 Rechner hin zu gehen um dort diese Einstellung vorzunehmen war die Idee da es per Script auszuführen.
Habe daraufhin in der Windows Registry den Pfad gefunden welchen ich ändern muss um die gewünschte Einstellung zu setzen.
Habe auch schon etwas angefangen mit dem Programm nur komm ich nicht weiter warum es nicht Funktioniert.
Bin aber auch offen für andere Ideen und Sprachen. Jedoch sind meine Kenntnisse zur Zeit noch stark begrenzt weshalb ich auf die Hilfe von anderen angewiesen bin.
Code:
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
strValueName = "DeviceState"
dwValue = "1"
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Capture\"
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
For Each subkey In arrSubKeys
strRegKey = "\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Capture\"
strRegKey1 = strRegKey & subkey
oReg.GetDWORDValue HKEY_LOCAL_MACHINE, strRegKey1, strValueName, strValue
If strValue = "268435457" then
MsgBox ""
End if
Next
Wscript.Echo "Done!"
Unter dem Pfad "Capture" befinden sich halt einige cryptische Schlüssel ({26b826f7-f8ae-491c-b83b-c9248476f7b1})
Leider sind diese Schlüssel von Rechner zu Rechner unterschiedlich viele und auch unterschiedlich benannt.
In diesen Werten befinden sich Dezimalwerte(268435460).
Das Programm soll also die Schlüssel finde mit dem Inhalt 268435457 und diese dann durch eine 1 ersetzen.
Das ganze spielt sich unter Windows 7 64 Bit ab.
Herzlichen Dank schon einmal vor ab.
P.S. : Der bisherige Code wurde mittels Anfängerkenntnissen und ein wenig Hilfe von Dr. Google erstellt.
EDIT: Fehler aktuell ist übrigens, dass er nicht in die if abfrage kommt, da strValue keinen Wert bekommt
Zuletzt bearbeitet: