rpgmakerxp.frbb.net

Un forum basé sur le rpg making via rmxp
 
AccueilPortailFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

 les APIs windows !

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
berka
Admin
Admin
avatar

Masculin
Nombre de messages : 842
Age : 27
Localisation : Devant mon ordi!
Projet en cours: : Secret ^^
Date d'inscription : 16/03/2007

niveau du maker
mapping:
0/100  (0/100)
events:
50/100  (50/100)
scriptage:
100/100  (100/100)

MessageSujet: les APIs windows !   Sam 3 Mai - 22:27

Ce tutoriel n'est destiné qu'à des utilisateurs du ruby/ rgss confirmés, étant donné sa difficulté. (je ne veux décourager personne)
J'essaye de le faire le plus simple possible, peut etre au détriment de son exhaustivité...
Tout d'abord, qu'est-ce qu'une api windows ?
C'est un moyen très direct d'agir, de controler le systeme d'exploitation windows.
Et bien sur, cela nous interresse très fortement pour personnaliser notre jeu !

Windows (ouh qu'il est gentil) nous offre donc plusieurs types d'apis, presentes dans le dossier d'installation de l'OS windows, sous forme de dlls, Dynamic Link Library.
en voici les principales et les plus utilisées:

(pour windows 32 bits, pour XP, je ne connais pas encore très bien vista)

    user32.dll interface utilisateur: etat du clavier, souris ...
    kernel32.dll gere les periferiques: imprimante, et permet de modifier la base de registre...
    shell32.dll reseau, redemarrer, quitter windows ...
    gdi32.dll affichage: ecran...
    comctl32.dll affiche des elements de controle: progressbar, barres d'outils...
    comdlg32.dll boites de dialogue: manipulation de fichiers...
    winmm.dll gestion multimedia, implantée a windows

mais cette liste est loin d'etre complete, etant donné toutes les possibilités qu'offrent les apis.

passons maintenant a leur utilisation:
RGSS possède bel et bien une classe, nommée Win32API, gerant l'importation de dlls.

interressons nous a un code très court, permmetant d'emuler une combinaison de touches:
Code:
@clavier = Win32API.new(user32.dll', 'keybd_event', ['i', 'i', 'l', 'l'], 'v')

  • on assigne a une variable @ clavier toute l'api:
  • on appelle la classe Win32API, avec comme arguments ceci: (user32.dll', 'keybd_event', ['i', 'i', 'l', 'l'], 'v')
  • user32.dll : nom de la dll
  • keybd_event : fonction de la dll (en effet la dll user32 est comme une boite, regroupant de nombreuses fonctions comme keybd_event, SetCursorPos etc...)
  • ['i', 'i', 'l', 'l'] ou %w(i i l l) (meme chose): plus compliqué: on crees un tableau comportant tous les parametres a entrer dans la focntion de la dll, on y reviendra...
  • 'v', la sortie de l'api, on y reviendra aussi...


ceci: @clavier = Win32API.new(user32.dll', 'keybd_event', ['i', 'i', 'l'], 'v')
ne nous sert a rien pour l'instant, ce n'est qu'une variable, il faut l'appeler pour qu'elle agisse sur le systeme:
on fait donc ca:
Code:
@clavier.call(0xA4, 0, 2)
ces 4 arguments (0xA4, 0, 2) renvoient à ces 4 parametres ['i', 'i', 'l'] gné, pourquoi des i et des l ?
ben il faut faire de l'anglois Laughing

  • i = integer, c'est un entier, commme 1, 5, 123, 34453 ...
  • l = long, c'est un nombre: 155,552, 542,458888, 1,00
    il existe aussi:
  • p = texte, contiendra un string (c'est un pointeur...)
  • v = void type, variable reservée a la sortie, donc au dernier argument de @clavier = Win32API.new(user32.dll', 'keybd_event', ['i', 'i', 'l'], 'v')

donc: @clavier.call(0xA4, 0, 2)
0xA4: numero de la touche
0 : "code matériel d'analyse"
2; etat de la touche (pressée ou pas)

par contre d'une dll a l'autre, ou meme d'une fonction d'une dll a l'autre les arguments changent
exemples:
@readini = Win32API.new('kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l')
@findwindow = Win32API.new('user32', 'FindWindowA', %w(p p), 'l')
@desktop = Win32API.new("user32", "SystemParametersInfo", ['L','L','P','L'] , 'L')
... ...
mais comment trouver le nombre d'arguments et de parametres, ainsi que leur forme ?
il n'y a pas d'autres moyens que de faire une recherche sur le web
je vous conseille le site de microsoft: msdn2
et ce site très complet: allapis

voici un p'tit script d'exemple Laughing
necessite cette dll ici meme
car avec les apis, on peut meme importer ses propres dlls, placées au prealable dans son projet
Spoiler:
 
autre exemple:
Spoiler:
 

voila, en espérant avoir été le plus clair possible !

_________________

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://rpgmakerxp.frbb.net
 
les APIs windows !
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» J'ai installé un windows 8
» Ehm on Windows 8
» Windows 7 et....
» Probleme avec windows 8
» windows phone

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
rpgmakerxp.frbb.net :: Les Tutoriaux :: Les Tutoriaux :: Apprendre le Ruby-
Sauter vers: