scripts pour lancer mes emulateurs depuis Kodi

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Myghalloween
Niveau 1
Niveau 1
Messages : 11
Enregistré le : jeu. 18 févr. 2010 11:14
Status : Hors ligne

scripts pour lancer mes emulateurs depuis Kodi

#1

Message par Myghalloween »

Bonjour,
Je suis plutôt débutant dans les langages de programmation, mais grâce à Autoit j'ai réussi à faire quelques scripts simples pour lancer mes émulateurs depuis Kodi avec des commandes et arguments plutôt basiques.
Cette étape étant passée et suffisante pour mes besoins, j'essaye juste de rendre mes scripts un peu plus cosmétique et pratique à modifier, en procédant par étape pour comprendre. Sachant que jusqu'ici j'y vais de façon un peu expérimentale, surtout pour placer les ' , et " pour lesquelles je veux bien des précisions ^^

Voilà ce que ça donne pour lancer Project64 depuis Kodi (celui-ci fonctionne ^^) :

Code : Tout sélectionner

HotKeySet("{ESC}", "Terminate")

Send ( "#{F9}" ); Permet de désactiver temporairement le focus de Kodi 
Run ( '"C:\VMs\Project64 2.1\Project64.exe" "' & $CmdLine[1] & '"' )
Func Terminate()
    ProcessClose ( "Project64.exe" )
	WinSetState("Kodi", "", @SW_MAXIMIZE)
	Send ( "#{F9}" ); Réactive le focus de Kodi
    Exit 0
EndFunc
Et j'essaye de le transformer avec des variables à définir en début de script afin de modifier facilement et rapidement sans risque d'erreur lorsque j'ai une nouvelle version pour chacun de mes émulateurs (ce script me retourne une erreur) :

Code : Tout sélectionner

HotKeySet("{ESC}", "Terminate")

; variable a definir :
$path = "C:\VMs\Project64 2.1"
$app = "Project64.exe"

Send ( "#{F9}" ); Permet de désactiver temporairement le focus de Kodi 
Run ( '" & $path & $app & '" "' & $CmdLine[1] & '"' )
Func Terminate()
    ProcessClose ( " $app " )
	WinSetState("Kodi", "", @SW_MAXIMIZE)
	Send ( "#{F9}" ); Réactive le focus de Kodi
    Exit 0
EndFunc
Mes scripts sont faits depuis SciTE et compilés avec Aut2exe v3 en x64 pour win 7.
J'espère vous fournir suffisamment d'info pour m'aider. J'attends vos conseils pour progresser
Merci
:bisou:
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: scripts pour lancer mes emulateurs depuis Kodi

#2

Message par Tlem »

Bonjour,
A première vue, il y a 2 erreurs dans cette ligne : Run ( '" & $path & $app & '" "' & $CmdLine[1] & '"' )

Vous devriez essayer ceci : Run ( '"' & $path & "\" & $app & '" "' & $CmdLine[1] & '"' )
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Myghalloween
Niveau 1
Niveau 1
Messages : 11
Enregistré le : jeu. 18 févr. 2010 11:14
Status : Hors ligne

Re: scripts pour lancer mes emulateurs depuis Kodi

#3

Message par Myghalloween »

Bonjour !
Effectivement c'est déjà mieux ! J'ai aussi modifié la commande run par runwait puisque je me suis aperçu que la fonction Terminate ne fonctionnait pas sans ça :D
J'ai pu simplifier une grande majorité de mes scripts ! Reste que je n'arrive pas à intégrer un argument, ni dans la commande runwait, ni dans la variable $emuExe... Du coup je ne trouve pas comment lancer Kodi en mode portable. Lorsque je fais ce simple code :

Code : Tout sélectionner

RunWait ( '"Kodi.exe" -p ", ""')
Kodi se lance bien en mode portable.

Par contre j'ai tenté ça dans mon code :

Code : Tout sélectionner

$emuPath = "C:\Program Files (x86)\Kodi 16.1"
$emuExe = "kodi.exe" -p

HotKeySet("{ESC}", "Terminate")

RunWait ( '"' & $emuPath & "\" & $emuExe & '"' )

Func Terminate ()
    ProcessClose ( "kodi.exe" )
EndFunc
ça me retourne une erreur de fonction inconnue :|
Quand j’enlève -p le code fonctionne, mais kodi se lance normalement et non en mode portable
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: scripts pour lancer mes emulateurs depuis Kodi

#4

Message par Tlem »

Bonsoir,
Remplacez $emuExe = "kodi.exe" -p par $emuExe = "kodi.exe -P"

ou comme ceci :

Code : Tout sélectionner

$emuPath = "C:\Program Files (x86)\Kodi 16.1"
$emuExe = "kodi.exe"

HotKeySet("{ESC}", "Terminate")

RunWait ( '"' & $emuPath & "\" & $emuExe & ' -p"' )

Func Terminate ()
    ProcessClose ( "kodi.exe" )
EndFunc
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Myghalloween
Niveau 1
Niveau 1
Messages : 11
Enregistré le : jeu. 18 févr. 2010 11:14
Status : Hors ligne

Re: scripts pour lancer mes emulateurs depuis Kodi

#5

Message par Myghalloween »

Bonsoir Thierry et merci pour l'aide.

Donc j'ai testé les 2 solutions mais rien ne se passe. Pas d'erreur non plus... :roll:

J'en profite pour demander au passage pourquoi ça sa marche dans mon code précédent

Code : Tout sélectionner

Func Terminate ()
    ProcessClose ( "kodi.exe" )
EndFunc
Et pourquoi ça sa marche pas ?

Code : Tout sélectionner

Func Terminate ()
    ProcessClose ( " & $emuExe & " )
EndFunc
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: scripts pour lancer mes emulateurs depuis Kodi

#6

Message par Tlem »

Bonjour.
Vous devez impérativement faire attention avec l'utilisation des guillemets.

ProcessClose ( " & $emuExe & " ) => rocessClose ( '"' & $emuExe & '"' )

Regardez comment apparaissent vos variables dans SciTE. Si elles sont de la même couleur qu'un texte simple, alors elles ne seront par interprétées.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Myghalloween
Niveau 1
Niveau 1
Messages : 11
Enregistré le : jeu. 18 févr. 2010 11:14
Status : Hors ligne

Re: scripts pour lancer mes emulateurs depuis Kodi

#7

Message par Myghalloween »

Oui j'ai beaucoup de mal avec les guillemets, j'y vais souvent de façon expérimental :wink:
Du coup je viens de tester avec

Code : Tout sélectionner

ProcessClose ( '"' & $emuExe & '"' )
et ça ne fonctionne pas. Mais pas d'erreur non plus en l’occurrence. Par contre j'ai essayé

Code : Tout sélectionner

ProcessClose ( $emuExe )
(de façon expérimental encore une fois :D ) et ça marche !
Donc mon code donne pour le moment :

Code : Tout sélectionner

$emuPath = "C:\Program Files (x86)\Kodi 16.1" ; define variable
$emuExe = "kodi.exe" ; define variable

HotKeySet ("{ESC}", "Terminate")

RunWait ( '"' & $emuPath & "\" & $emuExe & '"' )

Func Terminate ()
    ProcessClose ( $emuExe )
EndFunc
Par contre je ne trouve toujours pas de solution pour lancer kodi en mode portable... J'essaye pleins de solutions différentes sans succès :?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: scripts pour lancer mes emulateurs depuis Kodi

#8

Message par Tlem »

Normalement, RunWait ( '"' & $emuPath & "\" & $emuExe & ' -p"' ) ou RunWait ( '"' & $emuPath & "\" & $emuExe & '" -P' ) devrait fonctionner.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Myghalloween
Niveau 1
Niveau 1
Messages : 11
Enregistré le : jeu. 18 févr. 2010 11:14
Status : Hors ligne

Re: scripts pour lancer mes emulateurs depuis Kodi

#9

Message par Myghalloween »

Salut Thierry,

Bon j'en ai un qui fonctionne :D
Curieusement RunWait ( '"' & $emuPath & "\" & $emuExe & '"-p' ) fonctionne alors que si je mets un P majuscule, comme dans votre exemple, ça ne fonctionne pas... :| , et concernant RunWait ( '"' & $emuPath & "\" & $emuExe & '-p"' ) , pas d'erreur, mais ça ne fonctionne pas...
Cependant je ne trouve pas pour l'intégrer dans l'argument :(
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: scripts pour lancer mes emulateurs depuis Kodi

#10

Message par Tlem »

Bonjour.
En l'état vos lignes de commandes ne devaient pas fonctionner car il manque l'espace avant le signe "-".

Concernant votre dernière question essayez :
emuPath = "C:\Program Files (x86)\Kodi 16.1" ; define variable
$emuExe = "kodi.exe" ; define variable
$arg = "-p" ; argument de la ligne de commande

HotKeySet ("{ESC}", "Terminate")

RunWait ( '"' & $emuPath & "\" & $emuExe & '" ' & $arg ) ; Notez l'espace entre le double et le simple guillemet

Func Terminate ()
    ProcessClose ( $emuExe )
EndFunc
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Myghalloween
Niveau 1
Niveau 1
Messages : 11
Enregistré le : jeu. 18 févr. 2010 11:14
Status : Hors ligne

Re: scripts pour lancer mes emulateurs depuis Kodi

#11

Message par Myghalloween »

Bonjour Thierry

Mon code fonctionne justement sans espace avant "-" et ne fonctionne pas si j'ai un espace... curieux...
Par contre avec votre code ça marche avec ou sans espace ! Donc c'est parfait !
Je bloque encore sur un code, pour PCSX2, puisque je dois ajouter également un argument en plus de $CmdLine[1] sinon le lanceur ne fonctionne pas :

Code : Tout sélectionner

$emuPath = "C:\VMs\PCSX2 1.4.0" ; define variable
$emuExe = "pcsx2.exe" ; define variable
$emuArg = "--nogui --fullscreen" ; define variable

HotKeySet ("{ESC}", "Terminate")

;~ Send ( "#{F9}" ) ; disables Kodi focus in Launcher4Kodi
;~ RunWait ('"' & $emuPath & "\" & $emuExe & '" "' & $CmdLine[1] & '"') ; commande fonctionnelle mais pas d'argument
RunWait ( '"' & $emuPath & "\" & $emuExe & '"' & $emuArg & $CmdLine[1] & '"' )

Func Terminate ()
    ProcessClose ( $emuExe )
;~ 	Send ( "#{F9}" ) ; actives Kodi focus in Launcher4Kodi
	Exit 0
EndFunc
ça c'est mon ancienne ligne de code qui fonctionne Runwait ( '"pcsx2.exe" --nogui --fullscreen "' & $CmdLine[1] & '"', "" )

Merci pour votre précieuse aide ! :bisou:
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: scripts pour lancer mes emulateurs depuis Kodi

#12

Message par Tlem »

Bonjour.
Je pense que vous devriez garder le code existant et rajouter votre argument supplémentaire dans la déclaration des variables :

$emuArg = '--nogui --fullscreen "' & $CmdLine[1] & '"' ; define variable

Là, c'est brut de décoffrage, en principe il faudrait vérifier qu'il y a bien un argument car sinon, cette ligne provoquera une erreur.
Regardez la doc sur CmdLine pour faire le contrôle du nombre d'arguments et si il y à bien l'argument passer le paramètre dans une variable que vous mettrez à la place de $CmdLine[1]. ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Myghalloween
Niveau 1
Niveau 1
Messages : 11
Enregistré le : jeu. 18 févr. 2010 11:14
Status : Hors ligne

Re: scripts pour lancer mes emulateurs depuis Kodi

#13

Message par Myghalloween »

Bonsoir Thierry,
J'aime beaucoup l'idée d'intégrer l'argument $CmdLine[1] dans la variable mais j'ai beau tout essayer, je n'y arrive pas :roll:
Par contre j'ai un code fonctionnel en attendant de réussir à intégrer $CmdLine[1] dans la variable $emuArg :

Code : Tout sélectionner

$emuPath = "C:\VMs\PCSX2 1.4.0" ; define variable
$emuExe = "pcsx2.exe" ; define variable
$emuArg = "--nogui --fullscreen" ; define variable

HotKeySet ("{ESC}", "Terminate")

;~ Send ( "#{F9}" ) ; disables Kodi focus in Launcher4Kodi
RunWait ( '"' & $emuPath & "\" & $emuExe & '" '& $emuArg &' "' & $CmdLine[1] & '"' )

Func Terminate ()
    ProcessClose ( $emuExe )
;~ 	Send ( "#{F9}" ) ; actives Kodi focus in Launcher4Kodi
	Exit 0
EndFunc
Si vous avez une idée pour l'intégrer dans la variable je suis preneur parce que là je bloque, te je pense avoir tenté pas mal de solution avec les " et '

En tout cas merci pour l'aide jusqu'ici car j'ai vraiment bien progressé :wink:
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: scripts pour lancer mes emulateurs depuis Kodi

#14

Message par Tlem »

Bonsoir.
Je constate qu'il n'y a pas d'évolution depuis mon retour en France. ^^

Je vous propose donc ceci :
$emuPath = "C:\VMs\PCSX2 1.4.0" ; define variable
$emuExe = "pcsx2.exe" ; define variable
$emuArg = '--nogui --fullscreen "' & $CmdLineRaw & '"'  ; define variable

HotKeySet ("{ESC}", "Terminate")

;~ Send ( "#{F9}" ) ; disables Kodi focus in Launcher4Kodi
RunWait ( '"' & $emuPath & "\" & $emuExe & '" '& $emuArg)

Func Terminate ()
    ProcessClose ( $emuExe )
;~    Send ( "#{F9}" ) ; actives Kodi focus in Launcher4Kodi
   Exit 0
EndFunc
L’inconvénient de ce code, c'est que sans argument(s) il y aura 2 guillemets vide en fin de ligne de commande, mais comme je doute qu'ils soient interprétés, ca ne devrait pas gêner.
Sinon, il faut rajouter en début de script un test de la variable $CmdLineRaw et passer par le transfert des arguments par une variable supplémentaire. Maintenant, comme je l'ai dit précédemment, je doute que vos softs interprètent un vide entre deux guillemets doubles. ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Myghalloween
Niveau 1
Niveau 1
Messages : 11
Enregistré le : jeu. 18 févr. 2010 11:14
Status : Hors ligne

Re: scripts pour lancer mes emulateurs depuis Kodi

#15

Message par Myghalloween »

Merci pour ton aide Thierry, ça semble fonctionner :wink:
Répondre