CSharp dans AutoIt

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
Avatar du membre
mdanielm
Membre émérite
Membre émérite
Messages : 241
Enregistré le : mer. 11 déc. 2013 19:48
Status : Hors ligne

CSharp dans AutoIt

#1

Message par mdanielm » dim. 13 oct. 2019 18:37

CSharp dans AutoIt, c'est possible, simplement.

https://www.autoitscript.com/forum/topi ... nt-1366978

A utiliser chaque fois que vous avez besoin de rapidité d'exécution. Exemples:
- recherche d'un bitmap à l'intérieur d'un autre bitmap plus large,
- traitement spécifique sur de gros tableaux.

Je vais montrer la simplicité de mise en oeuvre en incorporant le code CSharp dans le fichier AutoIt, mais je pourrais aussi développer un code CSharp plus important, avec des outils spécifiques, dans un fichier à part. Je pourrais aussi utiliser Visual Basic à la place de CSharp.

Exemple:
Je demande à CSharp d'effectuer un calcul simple, puis à AutoIt d'effectuer le même calcul.
#include "DotNetAll.au3"

RunCodeCSharp()
RunCodeAutoIt()
ConsoleWrite("Lequel a raison ?" & @CRLF)

Func RunCodeCSharp()
        Local $oNetCode = DotNet_LoadCScode( GetNetCode(@ScriptFullPath, "CodeCSharp"), "System.dll" )
        Local $oClass = DotNet_CreateObject( $oNetCode, "Calcul" )
        $oClass.Puissance()
EndFunc

func RunCodeAutoIt()
        Local $x = -1^2
        ConsoleWrite("Calcul fait par AutoIt: -1^2 = " & String($x) & @crlf)
EndFunc

#cs CodeCSharp
using System;
class Calcul {
        public void Puissance() {
                double x = - Math.Pow(1, 2);
                Console.WriteLine("Calcul fait par CSharp: -1^2 = " + x.ToString());
        }
}
#ce CodeCSharp
DotNetAll.au3
(51.76 Kio) Téléchargé 30 fois
DotNetAll.au3
(51.76 Kio) Téléchargé 30 fois
Commentaire sur le code C#
Attention, le C# est sensible à la casse et les instructions se terminent par ';'
using - est l'équivalent de #include
"System.dll" - est la bibliothèque qui contient la définition de la classe Console
class Calcul - annonce la définition d'une classe de nom Calcul
public - est un attribut de méthode qui autorise l'utilisation à partir d'un objet
void - précise que la méthode ne retourne pas de valeur
Puissance() - est le nom de la méthode de classe qui n'a ici aucun paramètre
Console.WriteLine(); - méthode WriteLine de l'objet Console.

Commentaire sur le code AutoIt
GetNetCode - extrait le code C# contenu dans le Comment-Block nommé "CodeCSharp":
DotNet_LoadCScode - charge en mémoire le code C# et le compile en mémoire.
DotNet_CreateObject - Crée une instance de l'objet Calcul
$oClass.Puissance() - appelle une méthode de l'objet.

Répondre