C# fichier DLL pour module OpenSim
Bonjour,
je m'intéresse depuis peu aux modules pour OpenSimulator (dll C#). J'aimerais pouvoir détecter les coordonnées de la souris sur mon écran.
Mon installation : Ubuntu, mono 2.4.2.3, IDE : monodevelop
J'ai testé ce code et il fonctionne, les coordonnées de la souris s'affichent bien le temps de la boucle dans la console :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
using System;
using System.Drawing;
using System.Windows.Forms;
namespace sourisconsole
{
class MainClass
{
static int x=0;
static int y=0;
static int i=0;
public static void Main(string[] args)
{
for (i=0;i<100000; i++)
{
x=Cursor.Position.X;
y=Cursor.Position.Y;
Console.WriteLine(" x = "+x+" y = "+y);
}
}
}
} |
Pour faire un module OpenSim j'implémente cette interface :
Code:
1 2 3 4 5 6 7 8 9
|
public interface IRegionModule
{
void Initialise(Scene scene, IConfig config);
void PostInitialise();
void Close();
string Name { get; }
bool IsSharedModule { get; }
} |
J'ai fait un timer pour lire régulièrement les coordonnées de la souris et je l'ai attaché à la méthode suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
public static void Afficher(object sender, ElapsedEventArgs e)
{
try
{
//coordonnées de la Souris :
x=Cursor.Position.X;
y=Cursor.Position.Y;
Console.WriteLine(" x = "+x+" y = "+y);
}
catch(Exception ex)
{
// Ce code n'est exécuté que si une exception se produit
Console.WriteLine("Une erreur s'est produite : {0}", ex.Message);
}
}
} |
A la compilation du module je n'ai aucune erreur.
J'ajoute le module à mon installation OpenSim comme je l'ai fait avec d'autres modules (dans le dossier /bin) et je lance l'application.
Et cette fois j'obtiens l'erreur :
Citation:
An exception was thrown by the type initializer for System.Windows.Forms.XplatUI
Quelle est la différence avec ma première application ? Que dois-je modifier ? Si c'est impossible voire très compliqué avec cette méthode, laquelle me conseillez-vous ?
Merci pour vos réponses.