[HowTo] SteamBox - Windows 7 mit Steam BigPicture

Headologic

Komplett-PC-Aufrüster(in)
Hoi Jungs,

mit diesem HowTo zeige ich Euch, wie ihr Eure eigene SteamBox mit der BigPicture realisieren könnt. Im Endeffekt ist es nur ein abgeändertes Windows 7-System, das statt der Explorer(.exe) meine nach meinen Anforderungen erstellten Autohotkey-Scripts lädt. Sollte Steam den Xbox-Controller nicht gleich beim Start erkennen, so lässt sich ein Script per Controller starten, das eine Maus simuliert. In der Regel lässt sich dann das Script abschalten, weil Steam BP den Controller erkannt hat.
Zudem lädt es nach dem Start von Steam einige Software mit, damit auf Musik nicht verzichtet werden muss. Damit ihr euch das System besser vorstellen könnt, habe ich ein YouTube-Video erstellt.

https://www.youtube.com/watch?v=9ZnNZIG3efQ​

Da ich auf YouTube Anfragen von ausländischen Usern bekomme, wie sich eine SteamBox bewerkstelligen lässt, schreibe ich dieses Tut "zweisprachig".
Somit lasse ich User von YT auf diesen Thread weiterleiten, da YT keine zu langen Beschreibungen zulässt und der "zusätzliche" Besucherstom sicherlich auch PCGH zugute kommt.

################################################################################
Wie realisiere ich eine SteamBox unter Windows 7
How To realize the SteamBox under Windows 7
################################################################################​

Als erstes muss folgende Software heruntergeladen werden (ich gehe davon aus, dass Steam bereits installiert ist)
At first, you have to download a few free programs (i assume that Steam is already installed):


Bitte informiere dich darüber, wie sich die Software bedienen lässt. Es ist eh schon großzügig von mir, die Anleitung euch komplett zur Verfügung zu stellen.
Please inform yourself about how to use the software. It's generous of me to provide the instruction.


################################################################################​

Wenn du die Boot-Hintergrundbilder austauschen willst, findest du bei der Google Suche viele passende Bilder
If you want to change the login-background-image, you can find many images by Google Search
-Background-Images

Wenn du nicht weisst, wie sich die Bilder ändern lassen, dann informiere dich darüber im Internet oder auf der Herstellerseite
If you don't know to change the images, i beg you to read some tutorials (use google or the website of the manufacturer)

################################################################################
Durchführung
Performing
################################################################################
Step 1:
Installiere die oben aufgeführte Software
Install the software listed above

Step 2:
Ändere die Hintergrundbilder
Change the Background images

Step 3:
Kopiere und passe die Autohotkey-Scripts nach deinen Anforderungen an. (Anmerkung: das XBox-Controller-Script habe ich von der Autohotkey-Webseite bezogen)
Kopiere den Text, speichere die Datei ab (mit der Endung .ahk) und kompiliere diese schlussendlich.
Copy and customize the autohotkey-scripts (the X-Box-controller script was published on the website from autohotkey). Copy the text, save the file (with the extension .ahk) and compile the script.

################################################################################
StartSteamBP.ahk
################################################################################​
; Start Steam 360Control and 360Keybind at first

Process, Exist, Steam.exe
if ErrorLevel
Run, "C:\Program Files (x86)\Steam\Steam.exe" -bigpicture
else
Run, "steam://open/bigpicture"
Process, Exist, 360Keybind.exe
if ErrorLevel
Run, "C:\360Keybind.exe"
else
Run, "C:\360Keybind.exe"

; Wait until BigPicture UI open and set it to front

WinWait, Steam ahk_class CUIEngineWin32
WinActivate, Steam ahk_class CUIEngineWin32

; If Steam is successfully loaded wait 8 seconds and load the remaining software

sleep, 8000
Process, Exist, Remote Control Server.exe
if ErrorLevel
Run, "C:\Program Files (x86)\Remote Control Server\Remote Control Server.exe", , min
else
Run, "C:\Program Files (x86)\Remote Control Server\Remote Control Server.exe", , min
Process, Exist, aWARemote Pro Server.exe
if ErrorLevel
Run, "C:\Program Files (x86)\aWARemote Pro Server\aWARemote Pro Server.exe", , min
else
Run, "C:\Program Files (x86)\aWARemote Pro Server\aWARemote Pro Server.exe", , min
Process, Exist, winamp.exe
if ErrorLevel
Run, "C:\Program Files (x86)\Winamp\winamp.exe", , min
else
Run, "C:\Program Files (x86)\Winamp\winamp.exe", , min

; Set SteamBP to front and wait 60 seconds

WinActivate, Steam ahk_class CUIEngineWin32
sleep, 60000
WinWaitClose, Steam ahk_class CUIEngineWin32
Shutdown, 5

################################################################################
360Keybind.ahk
Du kannst die Hotkeys nach belieben anpassen
You can customize the hotkeys as desired
xbox360controller.jpg
################################################################################​
; Winamp Keys changed previously

Joy7::
GetKeyState, state, JoyPOV
if(state == 27000)
{
Send {F7}
return
}
else if(state == 9000)
{
Send {F8}
return
}
else if(state == 0)
{
Send {F6}
return
}
else if(state == 18000)
{
Process, Close, StartSteamPB.exe
WinWaitClose, Steam ahk_class CUIEngineWin32
Run, "C:\Windows\explorer.exe"
return
}
else if GetKeystate("Joy8")
{
Process, Exist, 360Control.exe
If(ErrorLevel = 0)
{
Run, "C:\360Control.exe", , min
return
}
else
{
Process, Close, 360Control.exe
return
}
}
return

Joy8::
send {F12}
return

################################################################################
360Control.ahk
The script is originally from autohotkey.com
Using a Joystick as a Mouse
################################################################################
; Increase the following value to make the mouse cursor move faster:
JoyMultiplier = 0.30

; Decrease the following value to require less joystick displacement-from-center
; to start moving the mouse. However, you may need to calibrate your joystick
; -- ensuring it's properly centered -- to avoid cursor drift. A perfectly tight
; and centered joystick could use a value of 1:
JoyThreshold = 5

; Change the following to true to invert the Y-axis, which causes the mouse to
; move vertically in the direction opposite the stick:
InvertYAxis := false

; Change these values to use joystick button numbers other than 1, 2, and 3 for
; the left, right, and middle mouse buttons. Available numbers are 1 through 32.
; Use the Joystick Test Script to find out your joystick's numbers more easily.
ButtonLeft = 1
ButtonRight = 2
ButtonMiddle = 3

; If your joystick has a POV control, you can use it as a mouse wheel. The
; following value is the number of milliseconds between turns of the wheel.
; Decrease it to have the wheel turn faster:
WheelDelay = 250

; If your system has more than one joystick, increase this value to use a joystick
; other than the first:
JoystickNumber = 1

; END OF CONFIG SECTION -- Don't change anything below this point unless you want
; to alter the basic nature of the script.

#SingleInstance

JoystickPrefix = %JoystickNumber%Joy
Hotkey, %JoystickPrefix%%ButtonLeft%, ButtonLeft
Hotkey, %JoystickPrefix%%ButtonRight%, ButtonRight
Hotkey, %JoystickPrefix%%ButtonMiddle%, ButtonMiddle

; Calculate the axis displacements that are needed to start moving the cursor:
JoyThresholdUpper := 50 + JoyThreshold
JoyThresholdLower := 50 - JoyThreshold
if InvertYAxis
YAxisMultiplier = -1
else
YAxisMultiplier = 1

SetTimer, WatchJoystick, 10 ; Monitor the movement of the joystick.

GetKeyState, JoyInfo, %JoystickNumber%JoyInfo
IfInString, JoyInfo, P ; Joystick has POV control, so use it as a mouse wheel.
SetTimer, MouseWheel, %WheelDelay%

return ; End of auto-execute section.


; The subroutines below do not use KeyWait because that would sometimes trap the
; WatchJoystick quasi-thread beneath the wait-for-button-up thread, which would
; effectively prevent mouse-dragging with the joystick.

ButtonLeft:
SetMouseDelay, -1 ; Makes movement smoother.
MouseClick, left,,, 1, 0, D ; Hold down the left mouse button.
SetTimer, WaitForLeftButtonUp, 10
return

ButtonRight:
SetMouseDelay, -1 ; Makes movement smoother.
MouseClick, right,,, 1, 0, D ; Hold down the right mouse button.
SetTimer, WaitForRightButtonUp, 10
return

ButtonMiddle:
SetMouseDelay, -1 ; Makes movement smoother.
MouseClick, middle,,, 1, 0, D ; Hold down the right mouse button.
SetTimer, WaitForMiddleButtonUp, 10
return

WaitForLeftButtonUp:
if GetKeyState(JoystickPrefix . ButtonLeft)
return ; The button is still, down, so keep waiting.
; Otherwise, the button has been released.
SetTimer, WaitForLeftButtonUp, off
SetMouseDelay, -1 ; Makes movement smoother.
MouseClick, left,,, 1, 0, U ; Release the mouse button.
return

WaitForRightButtonUp:
if GetKeyState(JoystickPrefix . ButtonRight)
return ; The button is still, down, so keep waiting.
; Otherwise, the button has been released.
SetTimer, WaitForRightButtonUp, off
MouseClick, right,,, 1, 0, U ; Release the mouse button.
return

WaitForMiddleButtonUp:
if GetKeyState(JoystickPrefix . ButtonMiddle)
return ; The button is still, down, so keep waiting.
; Otherwise, the button has been released.
SetTimer, WaitForMiddleButtonUp, off
MouseClick, middle,,, 1, 0, U ; Release the mouse button.
return

WatchJoystick:
MouseNeedsToBeMoved := false ; Set default.
SetFormat, float, 03
GetKeyState, joyx, %JoystickNumber%JoyX
GetKeyState, joyy, %JoystickNumber%JoyY
if joyx > %JoyThresholdUpper%
{
MouseNeedsToBeMoved := true
DeltaX := joyx - JoyThresholdUpper
}
else if joyx < %JoyThresholdLower%
{
MouseNeedsToBeMoved := true
DeltaX := joyx - JoyThresholdLower
}
else
DeltaX = 0
if joyy > %JoyThresholdUpper%
{
MouseNeedsToBeMoved := true
DeltaY := joyy - JoyThresholdUpper
}
else if joyy < %JoyThresholdLower%
{
MouseNeedsToBeMoved := true
DeltaY := joyy - JoyThresholdLower
}
else
DeltaY = 0
if MouseNeedsToBeMoved
{
SetMouseDelay, -1 ; Makes movement smoother.
MouseMove, DeltaX * JoyMultiplier, DeltaY * JoyMultiplier * YAxisMultiplier, 0, R
}
return

MouseWheel:
GetKeyState, JoyPOV, %JoystickNumber%JoyPOV
if JoyPOV = -1 ; No angle.
return
if (JoyPOV > 31500 or JoyPOV < 4500) ; Forward
Send {WheelUp}
else if JoyPOV between 13500 and 22500 ; Back
Send {WheelDown}
return

################################################################################
Letzter Schritt
Last step
################################################################################​

gpedit.jpg

  • Öffne den Gruppenrichtlinien-Editor (gpedit.msc)
  • Gehe zu "Richtlinien für lokaler Computer" -> Benutzerkonfiguration -> Administrative Vorlagen -> System"
  • Doppelklicke "Benutzerdefinierte Oberfläche"
  • Stelle die Richtlinie auf "Aktiv"
  • In die Textbox trägst du "C:\StartSteamBP.exe" ein (den Pfad zur Anwendung bzw. des kompilierten Autohotkey-Scripts)
  • (Du kannst aber auch Steam BP direkt laden, falls du keine anderen Anwendungen beim Start mitladen willst)
  • Starte deinen PC neu.

  • Click the Group Policy Editor button (gpedit.msc)
  • Browse to "Local Computer Policy > User Configuration > Administrative Templates > System"
  • Double click "Custom User Interface"
  • Select Enabled
  • In the Interface File Name text box, enter: "C:\StartSteamBP.exe"
  • (You can set the path with the filename from Steam if you dont want to load any software in the background)
  • Restart your computer.

################################################################################
Fertig
You're done
################################################################################​

Die Tastenbelegung ist wie folgt belegt, kann aber geändert werden
The keys are assigned as follow:

xbox360controller.jpg


Wenn du XBMC oder andere Anwendungen in die Spielebibliothek von Steam hinzufügen willst, kannst du die Anwendungen oder Spiele als steamfremdes Spiel einbinden.
Du kannst mit Taste "Down" und "Back" SteamPB beenden, im Normalfall wird anschließend die Windows-Oberfläche geladen.
Falls das nicht funktionieren sollte, kannst du mit dem Taskmanager einfach "explorer.exe" laden. Es ist wichtig, zuvor StartSteamBP per TaskManager zu beenden weil sonst der PC durch StartSteamBP.exe heruntergefahren wird.

Sollte etwas nicht laufen, wie hier beschrieben, prüfe bitte deine Schritte bevor du mir eine Frage stellst
Sollte es Verbesserungsmöglichkeiten geben, dann sag es mir. Für "improvement suggestions" habe ich offene Ohren :-)


If you want to add XBMC and other apps in the Steam games-list, you can add the apps in the Steamlist as "foreign apps".
You can switch to the Windows UI with press the buttons "Down" and "Back". Normally, Steam BP will be closed and the explorer.exe starts. If the key is without a function, plug your keyboard, launch the task-manager and start explorer.exe. But its important to close StartSteamBP in the taskmanager before. Otherwise the system shuts down.

If something does not work, check the steps. Then ask me at last.
If there are any improvement, then tell me. For improvement suggestions I have open ears. :-)
 
Zuletzt bearbeitet:
Zurück