[SCRIPT] Menu global type OSD (Switch entre Kodi, HS, Steam)

Vous trouverez ici les développements et les logiciels faits maison et qui répondent au mieux à nos besoin.

Modérateur : Modérateurs

Avatar de l’utilisateur
vik
Connaisseur
Connaisseur
Messages : 467
Inscription : 01 janv. 1970 - 03:34
Localisation : Evreux
A remercié : 18 fois
A été remercié : 319 fois
Contact :

[SCRIPT] Menu global type OSD (Switch entre Kodi, HS, Steam)

Message par vik » 05 déc. 2014 - 00:32

Pour mon utilisation (box sur TV),
Je voulais:
-Tout controller a la manette,
-Virer joy2key pour pas qu'il soit toujours actif (ca gene pour les jeux steam, etc)
-Faire des actions perso pour fermer certains jeux,
-Pouvoir switcher entre hyperspin, Kodi (xbmc) et Steam de n'importe ou,
-Pouvoir mettre en veille/eteindre le pc de n'importe ou,
-Pouvoir lancer des commandes / miniscripts perso facilement.

Du coup, je me suis fait un script et vous détaille le fonctionnement si ca peut donner des idées ou aider certains:

Le script check toutes les 2 secondes si HyperSpin est actif, si oui, il lance Joy2Key; si non, il l'arrete.
Et donc forcement un menu, qui s'active a la pression du stick droit, il permet de
- configurer des actions AHK custom activables de n'importe ou
- switcher entre Kodi, HyperSpin, et Steam
- quitter un jeu, meme si on ne peut pas le quitter avec ESC
- shutdown / sleep le pc
- faire n'importe quoi d'autre en AHK qui est activé directement par le menu

Ce qui est pratique c'est que du coup on peut configurer tout et n'importe quoi dans Joy2Key pour HyperSpin (navigation au stick, bouton pour menu "Genres", etc)

ca ressemble a ca (oui c'est moche. mais ca fonctionne.):
Image

J'ai fait une video du machin en qualitée pourrie:
[video][/video]

Voila; la source dessous, toute bien commentée pour le plaisir de lecture :)
(source en couleur en pleine page: http://pastebin.com/ucy3NfaW)

Code : Tout sélectionner

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
#Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
#SingleInstance Force ; Force only one instance of script
#Persistent ; Ensure the script is permanently running

; CONFIGURATION ==================================================

; the choices available in the menu, separated with '|'
listdata := "Quit Game|HyperSpin|Steam|Kodi|Sleep|Shutdown"

; total elements in menu
elements = 6

; period for checking hyperspin running, in ms
joyrate_check = 2000

; CUSTOM SCRIPTS =================================================
; These functions are executed when a menu item is chosen
; Function is automagically called from the menu item name
; Exemple: if the menu name is "Quit Game",
; the function FQuit_Game() will be called
; function is prefixed with 'F', spaces are replaced with '_'

FQuit_Game() {
  ; We check for a special close event required
  if WinExist("ahk_class PhyreFrameworkClass") {
    Process Close, HotlineGL.exe
  } else if WinExist("ahk_class YYGameMakerYY") {
    Process Close, Savant_Ascent.exe

  ; Else we simply send the Escape key
  } else {
    Send {Escape}
  }
}

FHyperSpin() {
  Process Close, Kodi.exe
  Run, "steam://ExitSteam"
  if WinExist("ahk_class ThunderRT6FormDC") ; dafuq HyperSpin
    WinActivate
  else
    Run, "D:\HeavyBox\HyperSpin.exe"
}

FSteam() {
  Process Close, HyperSpin.exe
  Process Close, Kodi.exe
  FQuit_Game()
  Process Exist, Steam.exe
  if ErrorLevel
    Run, "steam://open/bigpicture"
  else
    Run, "C:\Program Files (x86)\Steam\Steam.exe" -bigpicture
}

FKodi() {
  Process Close, HyperSpin.exe
  Run, "steam://ExitSteam"
  FQuit_Game()
  if WinExist("ahk_class Kodi")
    WinRestore
  else
    Run, "D:\Kodi\Kodi.exe"
}

FSleep() {
  ; Sleep/Suspend:
  DllCall("PowrProf\SetSuspendState", "int", 0, "int", 0, "int", 0)
  ; Hibernate:
  ; DllCall("PowrProf\SetSuspendState", "int", 1, "int", 0, "int", 0)
}

FShutdown() {
  Shutdown, 1
}

; ================================================================

index = 1
active := false
prevj2kstatus := false

; Run Joy2Key timer check (that executes label 'CustomJoy2Key' regularly)
setTimer, CustomJoy2Key, %joyrate_check%

; Gui menu settings
Gui +LastFound +AlwaysOnTop +ToolWindow -Caption
Gui, color, 000000
Gui, font, s18 bold, Arial
Gui, Add, Listbox, h192 vActionmenu Choose%index%, %listdata%

; Shows or hide menu
Toggle_GUI() {
  global active

  if (active=true) {
    active := false
    Gui, Cancel

  } else {
    active := true
    Gui, Show ;, NoActivate ; this avoid activating ahk window
  }
}

; Navigation in menu when menu active
ChoiceMove(dir) {
  global index, elements
  elemv = elements - 1
  if (index > 0 and index < elements and dir = "down")
    index++
  else if (index > 1 and index < elemv and dir = "up")
    index--
  GuiControl, Choose, Actionmenu, %index%
}

; Action on menu selection
ChoiceValidate() {
  global Actionmenu, active
  Gui, Submit
  active := false
  StringReplace, Actionmenu, Actionmenu, %A_SPACE%, _, All
  ; Run the function named F[menu_entry]
  F%Actionmenu%()
}

; xb360 RHat shows/hide menu
1joy10::Toggle_GUI()

; navigation hotkeys only when menu active
#IfWinActive ahk_class AutoHotkeyGUI
1joy1::ChoiceValidate()
1joy3::ChoiceMove("down")
1joy4::ChoiceMove("up")
return

; The 'function' that checks regularly if HyperSpin is active
; If yes it runs Joy2Key, else it kills it
CustomJoy2Key:
  if WinActive("ahk_class ThunderRT6FormDC") {
    if (prevj2kstatus=false) {
      Run, D:\HeavyBox\Joy2key\JoyToKey.exe
      prevj2kstatus := true
    }
  } else {
    if (prevj2kstatus=true) {
      Process Close, JoyToKey.exe
      prevj2kstatus := false
    }
  }
  return

Avatar de l’utilisateur
marintap
Connaisseur
Connaisseur
Messages : 214
Inscription : 11 févr. 2014 - 00:00
A remercié : 6 fois
A été remercié : 4 fois

Re: [EXEMPLE] Menu global type OSD avec AHK

Message par marintap » 05 déc. 2014 - 07:56

Excellente idée ! Je garde ça sous le coude pour quand je me mettrais sur ma nouvelle version de salon.
Merci !

Avatar de l’utilisateur
vik
Connaisseur
Connaisseur
Messages : 467
Inscription : 01 janv. 1970 - 03:34
Localisation : Evreux
A remercié : 18 fois
A été remercié : 319 fois
Contact :

Re: [SCRIPT] Menu global type OSD (Kodi, HS, Steam)

Message par vik » 01 sept. 2015 - 23:33

Mise a jour: supporte maintenant Steam bigpicture
+ Deplacé dans "logiciels maison"

Avatar de l’utilisateur
Meth
Administrateur
Administrateur
Messages : 4541
Inscription : 19 oct. 2012 - 01:00
Localisation : Conflans-en-Jarnisy
A remercié : 989 fois
A été remercié : 2179 fois
Contact :

Re: [SCRIPT] Menu global type OSD (Switch entre Kodi, HS, St

Message par Meth » 01 sept. 2015 - 23:51

J'étais complètement passé à coté lorsque tu l'as posté...merci grow!

Avatar de l’utilisateur
Deedrah
Virtuose
Virtuose
Messages : 1079
Inscription : 21 juil. 2014 - 01:00
Localisation : Marseille
A remercié : 136 fois
A été remercié : 49 fois

Re: [SCRIPT] Menu global type OSD (Switch entre Kodi, HS, St

Message par Deedrah » 02 sept. 2015 - 00:30

Génial, on doit être une paire à avoir la TV en affichage secondaire !
boulet que je suis, comment on on intègre ton script ?

Avatar de l’utilisateur
vik
Connaisseur
Connaisseur
Messages : 467
Inscription : 01 janv. 1970 - 03:34
Localisation : Evreux
A remercié : 18 fois
A été remercié : 319 fois
Contact :

Re: [SCRIPT] Menu global type OSD (Switch entre Kodi, HS, St

Message par vik » 02 sept. 2015 - 09:27

Tu copies le code, tu l'enregistres en fichier .ahk, tu modifies les chemins dedans pour tes emplacements de kodi, steam et etc, et tu le lance.
Et si tu veux le lancer au demarrage du pc tu le mets dans le menu "Demarrage" du menu demarrer

Avatar de l’utilisateur
himura95
Maître
Maître
Messages : 3177
Inscription : 05 mars 2015 - 20:13
Localisation : Pontoise
A remercié : 911 fois
A été remercié : 562 fois

Re: [SCRIPT] Menu global type OSD (Switch entre Kodi, HS, St

Message par himura95 » 02 sept. 2015 - 09:35

Merci J'étais également passé à coté :oops: et çà a l'air terrible :)
Image

Avatar de l’utilisateur
camarade35
Maître
Maître
Messages : 4230
Inscription : 05 sept. 2013 - 01:00
Localisation : Chevaigné
A remercié : 619 fois
A été remercié : 739 fois
Contact :

Re: [SCRIPT] Menu global type OSD (Switch entre Kodi, HS, St

Message par camarade35 » 13 sept. 2015 - 16:54

faeze a écrit :Petit up discretos.
Quelqu'un dans le secteur pour me dépatouiller?

Envoyé de mon Atari 520 ST en utilisant Tapatalk
@faeze tu devrais ouvrir un post dédié pour ton aide, ce n'est pas le bon endroit ;)
préservation du patrimoine vidéoludique et de notre planète

Avatar de l’utilisateur
faeze
Mentor
Mentor
Messages : 2089
Inscription : 16 mai 2013 - 01:00
Localisation : Henin Beaumont
A remercié : 198 fois
A été remercié : 118 fois

Re: [SCRIPT] Menu global type OSD (Switch entre Kodi, HS, St

Message par faeze » 13 sept. 2015 - 21:26

Cam, si tu pouvais supprimer les deux messages stp, je ne peut pas le faire.

Au passage le bouton point exclamation (pour balancer les mecs qui disent des conneries ;) ) ne fonctionne pas. Erreur 404

Merci

Répondre

Revenir à « Développements et logiciels maison »