Disclaimer: ez a post csak kiegészítés egy régebbihez, amelyet itt találhattok.
Szokták mondani, hogy a programozói lustaság néha igencsak hasznos, ezek az emberek ugyanis hajlamosak mindent a végletekig automatizálni csak hogy minél kevesebbet kelljen dolgozniuk. Úgy fest ezt a hozzáállást én is magaménak mondhatom (bár messze állok a programozóságtól), ugyanis időt és energiát nem kímélve megoldottam, hogy kb. sose kelljen az egérért mászkálnom, miközben az ágyban fekve felváltva netezek és a Steam Big Picture-ben játszok. Ezt szerettem volna elérni:
- amikor indul a gép egyből tudjam irányítani a gamepad-del (ez volt e legegyszerűbb, a JoyToKey linkjét bele kellett csak rakni a Start menü ->Indítópultba valahogy így:
- utána legyen egy ikonom a Steam-hez, ami Big Picture módban indítsa el miután kinyírta a JoyToKey processét. Erre azért van szükség, mert a Windows-ban oly hasznos kis progi bekavar a játékok irányításába (mivel „ő” és az adott játék is egyszerre akar inputot küldeni).
- aztán ha kilépek Big Picture módból (akár úgy hogy csak a módot kapcsolom ki, akár úgy hogy az egész Steam-ből kilépek) akkor induljon el újra a JoyToKey, hogy újra tudjak netezni a gamepad-del.
Egyszerűen hangzik, ugye? Eleinte én is annak tartottam, félmegoldást szültem is rá egy sima .bat file segítségével:
[code]@echo off
TASKKILL /F /IM „JoyToKey.exe”
start „” „C:\Program Files (x86)\Steam\Steam.exe”[/code]
Na igen, de ez nem indítja el újra a JoyToKey-t ha kiléptem a Big Picture-ből, ezért mindig oda kellett fáradnom az asztalhoz rajta az egérrel, hogy újra elindítsam. Persze valamiféle triggerelést még írhattam volna hozzá így is, de azt, hogy csak a Big Picture-t kapcsoltam ki nem hiszem hogy .bat file-ból lehet figyelni. Így bukkantam rá az Autohotkey nevű csodára (pontosítok: ismertem már régebben is, csak sose volt rá szükségem), illetve erre a fórumra, ahol egy olyan scriptet vitattak meg, amelynek működése hasonlított ahhoz, amit én szerettem volna elérni. Így született meg a következő gyöngyszem, amely tökéletesen megfelel a céljaimnak:
[code]Process, Close, JoyToKey.exe
Process, Exist, Steam.exe
if ErrorLevel
Run, „steam://open/bigpicture”
else
Run, „c:\Program Files (x86)\Steam\Steam.exe” -bigpicture
WinWait, Steam ahk_class CUIEngineWin32
WinWaitClose, Steam ahk_class CUIEngineWin32
Run, „c:\Users\JonC\Desktop\JoyToKey.lnk”[/code]
El is magyarázom sebtiben mit is csinál ez:
Először kinyírja a JoyToKey.exe-t – itt még nincs szükség semmiféle if-then szerkezetre. Utána megnézni fut-e a Steam, majd ha úgy látja igen, akkor kirakja Big Picture-be – ha nem, akkor elindítja a -bigpicture kapcsolóval. Ezután okosan megvárja, amíg megjelenik maga a felület (WinWait), majd azt, hogy a felület eltűnjön (vagy úgy, hogy kiléptem a Steam-ből, vagy úgy hogy csak a Big Picture módból – neki édesmindegy). Ha ez megtörtént, akkor újra elindítja a JoyToKey-t. Érdekes módon közvetlenül az exéjét indítva mindig valami default profile-lal indult el, ezért kellett az asztali parancsikon elérési útját megadnom neki.
Ezt a scriptet elég elmenteni egy file-ba .ahk kiterjesztéssel, és már futtatható is (persze csak ha fent van a gépen az Autohotkey). Ha igazán kényelmesek akarunk lenni át is fordíthatjuk exébe, aztán mehet ki az ikonja az Asztalra:
(Hadd ne kezdjek bele elmesélni, hogy egy hasonló compile mennyivel komplikáltabb Linuxon…)