siaro 0 Geschrieben 28. Dezember 2013 Melden Teilen Geschrieben 28. Dezember 2013 Servus Männer, bin ganz neu und quasi auf der Durchreise. Ich brauche ein Script das in einer bestimmten .xml Datei (usergui.xml von xbmc) den Inhalt des <audiodevice>mode=0</audiodevice> durch <audiodevice>mode=2</audiodevice> ersetzt UND UMGEKEHRT und . Das ganze als ausführbares Konstrukt per Tastendruck meiner Fernbedienung. Hintergrund: XBMC lässt nur eine Änderung des Ausgabedevices innerhalb seiner Oberfläche zu, und es ist ihm herzlich egal, was in Windows eingestellt ist, sodass ich gezwungen wäre es manuell in XBMC selber umzustellen, was allerdings kontraproduktiv ist, da der Monitor dafür ausgeschaltet bleiben soll. Gibt es sowas? Oder kann mir das jemand kurz zusammenbauen. Bin auch bereit dafür zu bezahlen. FGsiaro Obiger Eintrag ist nur beispielhaft. Zitieren Link zu diesem Kommentar
Daniel -MSFT- 129 Geschrieben 29. Dezember 2013 Melden Teilen Geschrieben 29. Dezember 2013 Hi siaro, da gibt es tausend und einen Weg, das zu machen. Hier ein Beispiel, wie Du es per PowerShell lösen kannst: (Get-Content <Pfad>\usergui.xml) | Foreach-Object {$_ -replace "<audiodevice>mode=0", "<audiodevice>mode=2"} | Set-Content <Pfad>\usergui.xml Ich glaube, '<','>' und '=' muss nicht entquotiert werden, ansonsten müsstest Du noch ein '\' davorschreiben. Du könntest auch den aktuellen Wert auslesen und vergleichen, so dass Du wechselst auf 2, wenn der Wert 0 ist und auf 0, wenn der Wert 2 ist. Probier es einfach mal aus. Quelle: http://blogs.technet.com/b/heyscriptingguy/archive/2008/01/17/how-can-i-use-windows-powershell-to-replace-characters-in-a-text-file.aspx http://technet.microsoft.com/en-us/library/ee692804.aspx Have fun!Daniel Zitieren Link zu diesem Kommentar
siaro 0 Geschrieben 29. Dezember 2013 Autor Melden Teilen Geschrieben 29. Dezember 2013 (bearbeitet) Also konkret geht es um diesen Eintrag in C:\Users\XBMC\AppData\Roaming\XBMC\userdata\guisettings.xml <audiooutput> <ac3passthrough>false</ac3passthrough> <audiodevice>WASAPI:{8576546F-79A2-485D-BC93-D3287713A40E}</audiodevice> <channels>1</channels> <dtshdpassthrough>true</dtshdpassthrough> <dtspassthrough>false</dtspassthrough> <guisoundmode>1</guisoundmode> <mode>0</mode> <multichannellpcm>false</multichannellpcm> <normalizelevels>true</normalizelevels> <passthroughaac>false</passthroughaac> <passthroughdevice>DirectSound:{8576546F-79A2-485D-BC93-D3287713A40E}</passthroughdevice> <stereoupmix>false</stereoupmix> <truehdpassthrough>false</truehdpassthrough> </audiooutput> dieser soll durch Tastendruck meiner Fernbedienung (Programmstart durch Evenghost möglich) diesen ersetzt werden UND wieder zurück; dabei möglichst mit kurzzeitiger Meldung am Bildschirm! <audiooutput> <ac3passthrough>false</ac3passthrough> <audiodevice>WASAPI:{2345A14D-4C70-44A8-A641-3076942090FA}</audiodevice> <channels>1</channels> <dtshdpassthrough>true</dtshdpassthrough> <dtspassthrough>false</dtspassthrough> <guisoundmode>1</guisoundmode> <mode>0</mode> <multichannellpcm>false</multichannellpcm> <normalizelevels>true</normalizelevels> <passthroughaac>false</passthroughaac> <passthroughdevice>DirectSound:{8576546F-79A2-485D-BC93-D3287713A40E}</passthroughdevice> <stereoupmix>false</stereoupmix> <truehdpassthrough>false</truehdpassthrough> </audiooutput> Also mit Powershell dann folgendermaßen? (Get-Content C:\Users\XBMC\AppData\Roaming\XBMC\userdata\guisettings.xml) | Foreach-Object {$_ -replace "<audiodevice>WASAPI:{8576546F-79A2-485D-BC93-D3287713A40E}</audiodevice>","<audiodevice>WASAPI:{2345A14D-4C70-44A8-A641-3076942090FA}</audiodevice>"} | Set-Content C:\Users\XBMC\AppData\Roaming\XBMC\userdata\guisettings.xml\usergui.xml Wie dann zurückschalten - und was ist Powershell? Microsoft integriert? bearbeitet 29. Dezember 2013 von siaro Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 29. Dezember 2013 Melden Teilen Geschrieben 29. Dezember 2013 und was ist Powershell? Microsoft integriert? http://de.wikipedia.org/wiki/Powershell Für Code bitte die Code-Tags benutzen, ist viel leserlicher für andere. (Get-Content C:\Users\XBMC\AppData\Roaming\XBMC\userdata\guisettings.xml) | Foreach-Object {$_ -replace "<audiodevice>WASAPI:{8576546F-79A2-485D-BC93-D3287713A40E}</audiodevice>","<audiodevice>WASAPI:{2345A14D-4C70-44A8-A641-3076942090FA}</audiodevice>"} | Set-Content C:\Users\XBMC\AppData\Roaming\XBMC\userdata\guisettings.xml\usergui.xml Zitieren Link zu diesem Kommentar
siaro 0 Geschrieben 29. Dezember 2013 Autor Melden Teilen Geschrieben 29. Dezember 2013 ok danke. Verstehe ich es richtig, dass ich eine neue Datei erstelle und dann umbenenne in beispielsweise script.ps1 -> dann ausführen in Powershell? Wie erfahre ich, ob es geklappt hat? Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 29. Dezember 2013 Melden Teilen Geschrieben 29. Dezember 2013 Ob es geklappt hast siehst du, wenn du die XML Datei aufmachst und die Änderung drin ist. Zitieren Link zu diesem Kommentar
Winnie75 10 Geschrieben 2. Januar 2014 Melden Teilen Geschrieben 2. Januar 2014 (bearbeitet) Ich würde es ja ganz entspannt über eine simple Batch machen: Leg Dir eine zweite XML an, in der Du den gewünschten Wert auf 2 änderst und speichere diese Datei unter einem anderen Namen, z.B. "usergui.tmp". Dann die Batch: ren usergui.xml usergui.old ren usergui.tmp usergui.xml ren usergui.old usergui.tmp bearbeitet 2. Januar 2014 von Winnie75 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.