-
Notifications
You must be signed in to change notification settings - Fork 1
/
Xoutputlauncher.ps1
72 lines (53 loc) · 2.37 KB
/
Xoutputlauncher.ps1
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
65
66
67
68
69
70
71
72
param([switch]$Elevated)
# Programnma di automatizzazione apertura xoutput,
# riconoscimento del PID xoutput.exe ed inserimento nella
# chiave di registro whitelist di hidguardian del PID
# Script by Zander
# Chiusura immediata finestra console (DA FAR DIVENTARE COMMENTO IN CASO DI DEBUG)
$t = '[DllImport("user32.dll")] public static extern bool ShowWindow(int handle, int state);'
add-type -name win -member $t -namespace native
[native.win]::ShowWindow(([System.Diagnostics.Process]::GetCurrentProcess() | Get-Process).MainWindowHandle, 0)
#Permessi amministrativi
function Check-Admin {
$currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
$currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}
if ((Check-Admin) -eq $false) {
if ($elevated)
{
# could not elevate, quit
}
else {
Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
}
exit
}
#Creazione chiave Whitelist
$PresenzaChiave = Test-Path 'HKLM:\SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters\Whitelist'
if ($PresenzaChiave -eq "False") {}
else {
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters\" -name "Whitelist" | Out-Null
}
# apertura Xoutput
Start-Process "$PSScriptRoot\Xoutput.exe" -WindowStyle Minimized
Start-Sleep 3
# Creare le variabili:
$XPID = "0"
$XPidOld = "0"
# cnoscere il PID di Xoutput
$XPID = (Get-Process -name XOutput).ID
## conoscere la chiave attualmente presente e modificarla in base al risultato
# conoscere la chiave:
$XPidOld = Get-Childitem -Path "HKLM:\SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters\Whitelist\*" -name
#Se gia avviato xoptput e chiave corretta comunica che è gia attiva la whitelist
if ($XPID -eq $XPidOld) {
New-BurntToastNotification -Text "Xoutput", 'XInput già avviato!' -AppLogo C:\XOutput\icon.png
exit}
# Verificare esistenza chiave e quindi modificarla, altrimenti crearla
if ($XPidOld -eq $null) { New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters\Whitelist" -name $XPID | Out-Null} else
{
Rename-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters\Whitelist\$XPidOld" $XPID | Out-Null
}
$OK='Avviato con PID:',$XPID
New-BurntToastNotification -Text "XInput", $OK -AppLogo C:\XOutput\icon.png
exit