-
Notifications
You must be signed in to change notification settings - Fork 0
/
Xbox One Headset Auto Connection.au3
64 lines (63 loc) · 3.65 KB
/
Xbox One Headset Auto Connection.au3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseUpx=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
;Written By: Amin Babaeipanah
;Modified By: BetaLeaf
Opt("TrayIconHide", 1)
$winTitle = "Xbox One Headset Auto Connection"
$WorkingDirectory = @TempDir & "\BetaLeaf Software\" & $winTitle
DirCreate(@TempDir & "\BetaLeaf Software\" & $winTitle)
FileInstall("nircmdc.exe", @TempDir & "\BetaLeaf Software\" & $winTitle & "\nircmdc.exe", 1)
Setup()
While 1
If GetDevices() = 1 Then
For $i = 0 To 2
ShellExecute($WorkingDirectory & "\NIRCMDC.exe", 'setdefaultsounddevice "Headphones" ' & $i & '"', @ScriptDir, "", @SW_HIDE) ;Set Default Playback Device to Slot $Slot.
Next
For $i = 0 To 2
ShellExecute($WorkingDirectory & "\NIRCMDC.exe", 'setdefaultsounddevice "Headset Microphone" ' & $i & '"', @ScriptDir, "", @SW_HIDE) ;Set Default Recording Device to Slot $Slot.
Next
Do
Sleep(5000)
Until GetDevices() = 2
EndIf
Sleep(1000)
WEnd
Func GetDevices()
Local $oDevice, $PNPDeviceID, $oWMIService = ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2")
If Not IsObj($oWMIService) Then Exit MsgBox(16, "Error", "WMI error")
Local $oPNPDevices = $oWMIService.ExecQuery("SELECT * FROM Win32_PnPEntity WHERE DeviceID Like '%USB\\VID_045E&PID_02E4&IGA_00%'", "WQL", 48)
If IsObj($oPNPDevices) Then
For $oDevice In $oPNPDevices
$PNPDeviceID = $oDevice.PNPDeviceID
Return 1
Next
EndIf
Return 2
EndFunc ;==>GetDevices
Func Setup()
Local $StartwithWindows = RegRead("HKCU\Software\BetaLeaf Software\Xbox One Headset Auto Connection", "StartwithWindows")
If @error Then
Local $ret = MsgBox(64 + 4, $winTitle, "Would you like this program to Start with Windows?")
If $ret = 6 Then
If RegWrite("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", $winTitle, "REG_SZ", '"' & @ScriptFullPath & '"') = 0 Then MsgBox(0, $winTitle, "Could not write to registry. Error: " & @error)
If RegWrite("HKCU\Software\BetaLeaf Software\Xbox One Headset Auto Connection", "StartwithWindows", "REG_DWORD", "1") = 0 Then MsgBox(16, $winTitle, "Could not write to registry. Error: " & @error)
ElseIf $ret = 7 Then
If RegDelete("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", $winTitle) = 2 Then MsgBox(0, $winTitle, "Could not delete registry key. Error: " & @error)
If RegWrite("HKCU\Software\BetaLeaf Software\Xbox One Headset Auto Connection", "StartwithWindows", "REG_DWORD", "0") = 0 Then MsgBox(16, $winTitle, "Could not write to registry. Error: " & @error)
EndIf
Else
Local $Run = RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", $winTitle)
Select
Case @error = -1
If RegDelete("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", $winTitle) = 2 Then MsgBox(0, $winTitle, "Could not delete registry key. Error: " & @error)
If RegWrite("HKCU\Software\BetaLeaf Software\Xbox One Headset Auto Connection", "StartwithWindows", "REG_DWORD", "0") = 0 Then MsgBox(16, $winTitle, "Could not write to registry. Error: " & @error)
Case $Run <> ""
If RegWrite("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", $winTitle, "REG_SZ", '"' & @ScriptFullPath & '"') = 0 Then MsgBox(0, $winTitle, "Could not write to registry. Error: " & @error)
If RegWrite("HKCU\Software\BetaLeaf Software\Xbox One Headset Auto Connection", "StartwithWindows", "REG_DWORD", "1") = 0 Then MsgBox(16, $winTitle, "Could not write to registry. Error: " & @error)
Case Else
MsgBox(16, $winTitle, "Could not read registry. Error: " & @error)
EndSelect
EndIf
EndFunc ;==>Setup