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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
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.