Accès à l’API Windows

1. Win32API

La classe Win32API sert à accéder aux librairies de Windows (format dll). Grâce au constructeur new, on prépare un appel d’une méthode en précisant :

  • le nom de la dll,

  • le nom de la fonction à invoquer,

  • la liste des types des arguments à l’aide d’un tableau,

  • le type obtenu en retour.

Le type est représenté par un caractère :

  • L : il s’agit d’un entier long.

  • I : il s’agit d’un entier.

  • P : un pointeur vers une chaîne.

  • V : un type void si la fonction ne retourne rien.

Une fois l’objet Win32API construit, il reste à effectuer l’appel grâce à la fonction call qui prend en argument tous les arguments de la fonction Windows et retourne le résultat de l’appel.

Exemple :

require "Win32API"

message = "Contenu de la boite de dialogue"  
title = "Titre de la boite de dialogue"  
api = Win32API.new('user32','MessageBox',['L', 'P', 'P', 'L'],'I')  
api.call(0,message,title,0) 

Nous obtenons alors cette boîte de dialogue :

CH5-3.png

La notion de pointeur n’est pas directe avec Ruby, puisqu’il s’agit d’une zone mémoire système. On se contente de créer une chaîne vide d’une certaine taille, en passant cette variable en argument de la commande call, cela est traduit comme un pointeur vers le contenu de cette...

Pour consulter la suite, découvrez le livre suivant :
couv_Ruby.PNG
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Web services
Suivant
Exercices