Ráktalicska

… hogy görbíti a teret…

Autohotkey + JoyToKey = Pure Win!

Írta JonC Ekkor: 2014. június 28.

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:

  1. 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:

    2014-06-28 13_35_02-

  2. 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).
  3. 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:

@echo off
TASKKILL /F /IM "JoyToKey.exe"
start "" "C:\Program Files (x86)\Steam\Steam.exe"

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:

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"

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:

2014-06-28 14_25_59-

(Hadd ne kezdjek bele elmesélni, hogy egy hasonló compile mennyivel komplikáltabb Linuxon…)

Ez jó, megosztom!

    1 komment

    1. bachterman:

      futtatás ikon helyett win+r

      A komment időpontja: 2014 június 29th, 07:45

    Írj kommentet!

    

    Top 5 post

    

    Érdekesség még, hogy 790 darab post, és 2657 darab kommentár született a blogon 2009. szeptember 12. óta. 1 vendég, 2 bot - most ennyien vagytok/vagyunk az oldalon.

    Tagek