[Programmation externe] Les tests.

Répondre
Partager Rechercher
Bonjour/bonsoir, j'ouvre ce thread pour centraliser un-peu les tests de développements possibles autour de Dofus, indépendamment du projet, de la plateforme, et du langage utilisé.

Le but, c'est de pouvoir suivre des avis et des idées pour améliorer son confort de jeu en respectant la Charte du jeu par-dessus tout !

Voilà donc pour commencer sur Mac OS X, on en était à tenter d'utiliser des fonctions de AppleScript sur la fenêtre du jeu, pour récupérer sa position etc.

Je n'ai pas de Mac sous la main, donc pour moi je vais faire à l'aveuglette et en théorique, pour ceux qui peuvent faire en direct ça sera certainement plus facile. ^^'
-> Comment arrivez-vous à lancer une fenêtre Dofus ?
-> tell application "Dofus" to open ? error "Dofus got an error: Can’t continue open." number -1708
-> tell application "Dofus" to get bounds of window 1 ? error "Dofus got an error: Can’t get bounds of window 1." number -1728 from bounds of window 1
-> tell application "Dofus" ? Fin de ligne prévu mais fin de script trouvé
-> Déplacer l'icône de Dofus dans le Script Editor renvoie-t-il la bibliothèque des actions associes ? Dictionnaire de l'application pas pilotable.
-> tell application "Dofus" to open application ? Lance le Launcher avec erreur Dofus* n'est pas ouvert
-> tell application "Dofus" to activate ? idem, lance le Launcher avec erreur Dofus* n'est pas ouvert
-> Avec une fenêtre Dofus ouverte, que retourne tell application "Finder" to get name of every window ? Retourne une liste vide.
-> tell application "Dofus" end tell ? Ne donne rien.
-> tell application "Launcher" to activate ? L'application Launcher n'existe pas.
-> tell application "UpLauncher" to activate ? Shamarsche ! Pfiou, la suite.
-> tell application "UpLauncher" to get name of every window ? Erreur commande inconnue.
-> tell application "DofusMod" to activate ?
-> man ps dans le terminal ? Youpie !
Fin des tests Mac. Conclusion : Il va falloir générer un nouveau dictionnaire Framework dédié à Dofus.

Tests Linux :
-> test de l'application devilspie ?
-> test de l'environnement GTK+ ?

Voiloù, si cela ne convient pas à la Charte de cette section, n'hésitez pas à me blâmer sauvagement, nous pourrions tout à fait continuer cette discussion par Messagerie Privée.

Dofusément,
Za.

Dernière modification par Famille Za,ruit?&%/" ; 01/12/2011 à 23h17. Motif: màj
En Applescript comme en macros Keyboard Maestro, rien ne semble possible pour manipuler les nièmes fenêtres sous Mac.

Code:
tell application "Dofus" to open
Le projecteur s’ouvre si et seulement si aucune fenêtre n’est ouverte, mais avec une erreur — invisible côté utilisateur.

Citation :
error "Dofus got an error: Can’t continue open." number -1708
Code:
tell application "Dofus" to get bounds of window 1
Nada.

Citation :
error "Dofus got an error: Can’t get bounds of window 1." number -1728 from bounds of window 1
Pour la référence, les codes erreurs signifient :
Citation :
–1708 <reference> doesn’t understand the <commandName> message.
–1728 Can’t get <reference>.
Pour le confort de jeu, le plus simple pour lancer une nième fenêtre est Alfred. Léger comme une plume, Alt+Espace, D, Return et ça roule. Je doute qu’on puisse faire mieux, mais continue d’espérer.
Grumpf.
Et sinon, avec une fenêtre Dofus ouverte, que retourne tell application Finder to get name of every window ? Si ça se trouve, c'est le Finder qui se verrait attribuer les fenêtres sans type...
Alfred, ça a l'air super pour ouvrir une nouvelle fenêtre, mais ça ne semble pas permettre de passer de l'une à l'autre dans un ordre pré-défini.

Question : tell application "Dofus" tout simplement, ça donne quoi ?
Autre question : Dans l'application Script Editor, en déplaçant l'icône de Dofus dedans, il devrait y avoir une bibliothèque des actions associées, est-ce que ça donne quelque-chose ?
Citation :
erait-il possible d'essayer de déplacer l'icône de Dofus dans la fenêtre du Script Editor, voir si une liste des commandes associées apparaît ?
Et sinon, que donne la commande tell application "Dofus" toute-seule ?
Alors,

  • Quand je glisse l'app DOFUS dans scriptedit j'ai ça :
    http://img828.imageshack.us/img828/1714/capturedcran20111122150.png


  • tell application "Dofus" : Ca donne rien, juste un message disant : "Fin de ligne prévu mais fin de script trouvé"

Edit :

  • Fenêtre Dofus ouverte, que retourne tell application Finder to get name of every window : "error "La variable Finder n’est pas définie." number -2753 from "Finder" "
Correction : tell application "Finder" to get name of every window, j'avais oublié les guillemets.
Le test de tell application "Dofus" to open application retourne quoi de son côté ? Et tell application "Dofus" to activate ?
Je ne sais pas comment se présente Dofus sur Mac... Avez-vous aussi une différence entre "Dofus", "DofusMod" et "UpLauncheur" ?

Pour l'icône de Dofus qui ne retourne pas de bibliothèque, je m'y attendais un-peu. Bon, si le Launcheur arrive à s'ouvrir, ce sera déjà un premier pas en avant.
  • tell application "Finder"
    get name of every window
    --> {}
    end tell
    Résultat*:
    {}

  • tell application "Dofus" to open application : Même chose sue dans mon mp (Ouvre l'upLauncher et "error "Erreur dans Dofus*: L’application n’est pas ouverte." number -600"

  • tell application "Dofus" to activate : la même : Ouvre l'upLauncher et "error "Erreur dans Dofus*: L’application n’est pas ouverte." number -600"

  • "Dofus", "DofusMod" et "UpLauncheur" : A confirmer, mais moi je ne vois que "Dofus", et l'exécutable Launcher pas de DofusMod (J'suis allez dans "Afficher le contenu des packets"
En dernier espoir : tell application "Dofus" end tell ?
Ou sa variante sur 2 lignes
tell application "Dofus"
end tell

Lorsque la liste des fenêtres du Finder était vide, il y avait bien une fenêtre Dofus d'ouverte ?

Ha, si il était possible de chercher aussi tell application "Launcher" to activate ?
  • "tell application "Dofus" end tell " ou "tell application "Dofus" end "
    et sa variante ne donne rien

  • Par contre, tell application "Launcher" to activate me demande de choisir une appli, si je choisis dofus (Sans allez dans les packets) : error "Erreur dans Dofus*: L’application n’est pas ouverte." number -600, mais m'ouvre le launcher

  • Et non, aucune fenêtre dofus ouverte, il fallait ? (Launcher + fenêtre dof ou juste Launcher ?)
Ok pour lancer "Dofus" directement, il faut faire autrement.
Comment se nomme l'UpLauncheur de votre côté ?
tell application "UpLauncher" to activate répond-il ?

Et oui, si il était possible d'ouvrir une fenêtre de jeu Dofus (donc, uplauncheur + Dofus) et faire tell application "Finder" to get name of every window, ce serait top !



@Dessous : Euuh, 'k. (Mais j'ai comprit, oui, sauf que je sais pas trop trop quelle appli appeler, donc si ça tombe sur le Finder, pourquoi pas...)

Dernière modification par Famille Za,ruit?&%/" ; 22/11/2011 à 18h06.
Le truc c'est que c'est normalement pas "Finder" qu'il faut appeler, par exemple pour les application scriptables que j'ai essayé (safari, apple script (et ouais )), il faut demander a l'application concernée

tiens j'ai eu un truc marrant, faut que je vérifie des machins

ah non rien d’exceptionnel en fait dommage, sinon j'ai au mieux l'erreur -600 d'application non ouverte

Je vais un peu plus expliquer ce que j'obtient par contre tiens :

aucune fenêtre d'activée, je demande 'tell /chemin/dofus to (do whatever you want)' c'a mouvre rien et j’obtiens un message a la con
si je vais plus loin, que je demande chemin/launcher, il ouvre le launcher et me dit qu'il n'est pas ouvert,
sinon comme j'ai mis dofus dans la barre des taches (qui me permet de l'ouvrir sans l'uplauncher) ça ouvre une fenêtre dofus (une seule max) et me dis 'pas ouverte'

edit pour en dessous:

Visiblement j'ai du me planter quand je l'ai écrit, parce que la ça marche effectivement sans problèmes ....

Par contre ... il me fait chier et refait en permanence les mises a jour ce boulet x_x

Par contre ca quitte sans problemes (tell " " to quit)

Dernière modification par deadlights ; 22/11/2011 à 19h05.
  • D'après ce que je vois, il se nomme "launcher"

  • tell application "UpLauncher" to activate : Ca lance l'uplauncher, sans prob.
  • uplauncheur + Dofus) et faire tell application "Finder" to get name of every window : j'ai un : {"Resources"} dans les résultats
Citation :
Publié par Dol'
  • tell application "UpLauncher" to activate : Ca lance l'uplauncher, sans prob.

Bon, alors, une fois que l'UpLauncheur est ouvert (c'est son petit nom réel apparemment), si il était possible de me répondre pour un tell application "UpLauncher" to get name of every window, ce serait parfait !
Je crains que ce ne soit pas tout à fait possible, mais soit espérons.

Ensuite, quand l'UpLauncheur est ouvert, si il était possible d'essayer un tell application "DofusMod" to activate ?
Citation :
Publié par Dol'
  • uplauncheur + Dofus) et faire tell application "Finder" to get name of every window : j'ai un : {"Resources"} dans les résultats
C'est normal puisque tu as ouvert le fichier ressource pour accéder au chemin du launcher (et que tu n'as pas quitté la fenêtre j'imagine.)

Tant que j'y etais, j'ai regardé ce qu'on pouvait faire avec automator, mais y a juste aucune fonction reliée a dofus :/ dommage

Ah lancer Le uplauncher le fait quitter inopinément ^^

Définitivement, ça ne marche pas.

@Dol : Pas de soucis, ca fait un moment que je voulais m'y mettre, mais de voir que c'est inutilisable sur les applis non prévues pour ca m'ennuie :/

Dernière modification par deadlights ; 22/11/2011 à 19h43.
  • error "Erreur dans UpLauncher*: Il est impossible d’obtenir name of every window." number -1728 from name of every window
  • Et Pour le deuxième, quand je compile, je dois sélectionner une appli (j'ai sélectionné Dofus) mais je retombe sur l'erreur -600

Pour au-dessus : Merci de la précision
tell application "UpLauncher" to open application
me renvoie :
error "Erreur dans UpLauncher : La connexion est invalide." number -609
et l'application Uplauncher a quitté inopinément

tell application "Dofus" to activate
e renvoie pareil que
tell application "Dofus" to open application

(j'ai réussi à ouvrir la bonne, mais obligé de passer pas les chemins, ce qui en soit n'est pas le plus gros problème)

d'ailleurs j'ai l'impression que ca ouvre l'application dofus beta de mon coté ... (j'ai le bouton 'signaler un bug')
(J'ai enfin trouvé comment envoyer un ticket au support grâce a vous :O) Faux espoir x_x section en maintenance pour les serveurs classiques :/


Désolé Za je pense que j'apporte une mauvaise nouvelle, je poste le massage, je le met en image apres

Impossible d’ajouter l’application ou extension car elle n’est pas pilotable. (je voulais voir les fonctions possibles avec dofus)
http://img703.imageshack.us/img703/4184/capturedcran20111122200.png

Uploaded with ImageShack.us

Dernière modification par deadlights ; 22/11/2011 à 20h09.
Point d'avancement :
  1. La bibliothèque des applications "Dofus" et "UpLauncheur" ne sont pas pilotables, car elles sont simplement inexistantes... le Studio n'a rien prévu de spécifique comme automatisation "Mac" sur ces applis, donc on ne pourra pas en obtenir grand-chose.
  2. En fonction du point n°1 (il n'y a pas de retour à espérer des applications désirées), les fonctions de récupération (get bounds, par exemple) ne retournent qu'une erreur 1708 (commande qui n'est pas interprétée par l'appli) ou 1728 (pas de retour de la part de l'appli à la commande)
Conclusion : la piste de l'AppleScript est très faible pour le moment, seules les commandes d'ouverture/fermeture de l'application sont envisageables (tell application "UpLauncher" to activate / to quit), c'est déjà un début.

Sous Windows, il y a une sorte de "liste de toutes les fenêtres ouvertes" disponible (c'est un bordel monstre, mais elle a le mérite d'exister ), à partir de n'importe-quel programme il est possible de connaître et modifier la position de n'importe-quelle fenêtre de cette liste... Ok, c'est à moitié une faille, mais c'est aussi à moitié pratique.
N'existe-t-il pas une commande du Terminal équivalente à "ps -fu" sous Linux ? Cela liste tous les processus ouverts.

J'ai fini de lire le chapitre de présentation de l'AppleScript mais comme pour l'Automator, l'environnement de dév est beaucoup trop restreint (par rapport à l'environnement trop ouvert de Windows). Et je laisse d'avance tomber Sikuli, le fonctionnement par captures d'écran c'est cool, mais heuu, j'ai autre-chose à faire que d'attendre 5~10 secondes que le script trouve un bouton dans une fenêtre.
Je vais orienter la recherche plutôt du côté du Terminal, j'espère qu'il pourra me donner les bonnes informations, lui !

Vous avez une commande de type "man" dans votre Terminal ?
Citation :
Publié par Famille Za,ruit?&%/"
Et je laisse d'avance tomber Sikuli, le fonctionnement par captures d'écran c'est cool, mais heuu, j'ai autre-chose à faire que d'attendre 5~10 secondes que le script trouve un bouton dans une fenêtre.
Je vais orienter la recherche plutôt du côté du Terminal
En même temps on fait Pomme + Shift + 3 et le screen arrive directement sur le bureau donc bon, c'est pas comme windows ou il faut obligatoirement un programme pour coller le screen/enregistrer.

Le reste, j'en ai aucune idée,
Sikuli, c'est un environnement de scripts qui fonctionne avec des captures d'écrans, rien à voir avec une fonctionnalité de capture.
Related vidéo : http://www.youtube.com/watch?v=FxDOlhysFcM
Si la vidéo est en vitesse réelle, alors rien que pour fixer une adresse IP, l'utilisateur lance le script et va boire un café en attendant que l'opération soit faite à sa place (mais beauucoup plus lentement). C'est pourrit, et à part faire du kikoo-geek "lu g skript mn IP", je vois pas vraiment de gains, quoi.
D'autant plus que c'est basé sur l'APPARENCE des objets, donc il suffit que l'utilisateur change les couleurs de son thème, et le script marche plus. 'K, np.

Donc, go vers le Terminal de Macintosh ! Pour ne pas faire de jaloux Linux, ce sera juste ensuite. ^^
l'avantage avec le terminal, c'est que y a des chances qu'on puisse utiliser une parte des lignes de code unix qui soient les mêmes que linux, mais j'ai vraiment pas envie de chercher a dedans, surtout pas aujourd'hui :/
Hop, quelqu'un a testé Mercury Mover ? http://joannis.typepad.fr/macpourtou...y-mover-u.html 'Paraît qu'il y a un mode de test, si vous aviez du temps pour l'essayer...

Sinon, en parlant du Terminal, serait-il possible d'ouvrir une fenêtre Dofus (avec ou sans UpLauncher), puis d'ouvrir le Terminal (en gardant Dofus ouvert), et taper la commande ps toute simple ?
Et man ps ?
Trop compliqué pour moi le terminal :/

a vrai dire y'a beaucoup plus de lignes renvoyé par man ps, mais la fenêtre du terminal veut pas descendre beaucoup :/

Dernière modification par deadlights ; 24/11/2011 à 18h34.
Je n'y connais rien mais j'ai testé ta commande, je ne sais ni si c'est ce que tu veux ni si j'ai fait la bonne manip vu que je n'utilise jamais le terminal

commande ps

PID TTY TIME CMD
6966 ttys000 0:00.00 -bash

commande man ps


PS(1) BSD General Commands Manual PS(1)

NAME
ps -- process status

SYNOPSIS
ps [-AaCcEefhjlMmrSTvwXx] [-O fmt | -o fmt] [-G gid[,gid...]]
[-g grp[,grp...]] [-u uid[,uid...]] [-p pid[,pid...]]
[-t tty[,tty...]] [-U user[,user...]]
ps [-L]

DESCRIPTION
The ps utility displays a header line, followed by lines containing
information about all of your processes that have controlling terminals.

A different set of processes can be selected for display by using any
combination of the -a, -G, -g, -p, -T, -t, -U, and -u options. If more
than one of these options are given, then ps will select all processes
which are matched by at least one of the given options.

For the processes which have been selected for display, ps will usually
display one line per process. The -M option may result in multiple out-
put lines (one line per thread) for some processes. By default all of
:


voila :x

Dernière modification par Alopios ; 24/11/2011 à 18h23. Motif: correction orthographe
Il paraîtrait (selon ce que j'ai trouvé en cherchant aujourd'hui) que les commandes soient identiques en très grande majorité sous Linux et Unix/BSD (dont Mac OS X fait partie).

Alors, voyons, si la commande '' man ps | more '' (le "|" c'est AltGr+6 sur un clavier Windows, c'est le "pipe") retourne le manuel de ps dans lequel vous pouvez bouger les pages avec espace et entrée (échap pour fermer), c'est tout bon !
Inutile de m'envoyer les pages du manuel si c'est le cas, j'utiliserai une version de Linux pour les commandes du terminal.

Si possible quand-même d'avoir (au-moins) une fenêtre Dofus ouverte en-plus de l'UpLauncher, et de faire un ps histoire de voir le nom du processus, ce serait top !
Si vous ne voyez pas Dofus dans la liste, n'hésitez pas à faire un ps -feu (pour afficher tous les processus en version étendue sous forme de liste, de mémoire) pour indiquer tout ce qui est en cours !
ps -feu | more pour pouvoir bouger dedans, évidemment.

deadlights et Alopios : Merci pour ça ! L'affichage dans le Terminal est limité, si vous voulez vous balader dans une page de manuel (d'où manuel, sisi ^^), il faut ajouter "| more" sous Linux.
Si "ps | more" fonctionne, alors dans ce cas je vais me concentrer sur le scripting "Linux" en serrant très fort les fesses pour que ce soit utilisable sous Mac aussi.
je ne sais pas si tu cherches a faire la même chose que sur PC mais pour MAC mais j'ai p-e une piste que tu sauras utiliser directement ou indirectement.
Il y a un bon moment je cherchais à connecter tous mes comptes automatiquement sur MAC. Le meilleur moyen que j'ai trouvé (mais pas très efficace) c'est d'utiliser la fonction "rcopie d'action" (je ne sais pas si c'est le nom) d'automator . Il suffit pour ça d'ouvrir automator, d'activer accessibilité et de cliquer sur le bouton "enregistrer". Automator enregistre les actions qui suivent. On ouvre dofus sur tous les comptes et on arrête l'enregistrement. ensuite suffit de cliquer sur le processus enregistré et c'est parti.
Le gros problème c'est que les fenêtres doivent s'ouvrir exactement au même endroit sinon l'ordi clic a coté des cases de log/pass et rien ne marche...

Voila j'espère que ça te sera utile. Je n'y connais rien en programmation mais j'aimerais bien découvrir un peu ce coté de l'informatique, notamment sur dofus. Si tu as des conseils à me donner je les prendrai volontier
Alopios, c'est justement ce que je regrette le plus sur Mac, c'est de se baser uniquement sur la position dans l'écran (si la fenêtre bouge, la souris cliquera au même endroit qu'avant, mais pas dans la fenêtre puisque celle-ci aura bougé...), c'est pour ça que je cherche comment faire pour avoir des informations spéciales.

Je vais essayer de taper sur l'implantation personnalisée d'un pont vers du Cocoa ou Framework équivalent rendant le Client "OSA-Compliant". En Français : Je vais voir si il est possible d'ajouter à Dofus de quoi le rendre scriptable sous Mac.


Sinon en Linux, j'ai trouvé devilspie, confirmez-vous que c'est un bon outil de gestion des fenêtres ?
Il y a aussi une histoire de Metacity et Compiz, si quelqu'un a plus d'explications je prends..!
Compiz, ça a l'air d'être ça : http://doc.ubuntu-fr.org/compiz_fusion , c'est un gestionnaire de bureau, donc ?

Bon allez, j'y retourne tout à l'heure.

Bonne nuit ! ^^

Edit : pas vraiment de conseils à donner pour l'instant, puisque je n'y connais rien en programmation Mac. (Et que je n'ai même pas de Mac..!)
Essaie de voir si tu arrives à lancer Dofus depuis Automator, c'est tout ce que je peux te conseiller pour l'instant. On verra si on arrive à mettre en place un pont vers des Apple Events !
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés