Partage
  • Partager sur Facebook
  • Partager sur Twitter

Gdi+ windows 7 x64

    3 mai 2011 à 8:21:41

    Bonjour,

    Je déssine des traits avec l'outil drawlines sur le bureau. Cela marche impec dans vs2010 mais des que je fais un executable et essai sur un autre ordi(meme config, meme hardware...) j'ai un message d'erreur au moment du gdi, en débogant on me dit que les argument point est un mauvais argument....quelqu'un a t'il deja eu ce probleme?

    Voici les message d'erreur:
    Signature du problème :
    Nom d’événement de problème: CLR20r3
    Signature du problème 01: hooksensiva.exe
    Signature du problème 02: 1.0.0.0
    Signature du problème 03: 4db91362
    Signature du problème 04: System.Drawing
    Signature du problème 05: 4.0.0.0
    Signature du problème 06: 4ba1e086
    Signature du problème 07: 328
    Signature du problème 08: 28
    Signature du problème 09: System.ArgumentException
    Version du système: 6.1.7601.2.1.0.256.4
    Identificateur de paramètres régionaux: 4108
    Information supplémentaire n° 1: 495a
    Information supplémentaire n° 2: 495ae6b24a84e0a7a8cee3c7e614ca6d
    Information supplémentaire n° 3: f8c5
    Information supplémentaire n° 4: f8c529e5262f58c27c8982b61e791b03
    
    
    Signature du problème :
    Nom d’événement de problème: APPCRASH
    Nom de l’application: HookSensiva.exe
    Version de l’application: 1.0.0.0
    Horodatage de l’application: 4db91362
    Nom du module par défaut: KERNELBASE.dll
    Version du module par défaut: 6.1.7601.17514
    Horodateur du module par défaut: 4ce7c78c
    Code de l’exception: c000041d
    Décalage de l’exception: 000000000000a49d
    Version du système: 6.1.7601.2.1.0.256.4
    Identificateur de paramètres régionaux: 4108
    Information supplémentaire n° 1: 644c
    Information supplémentaire n° 2: 644c5e94ad3ccfc748a52fadd4d7fd12
    Information supplémentaire n° 3: e3c2
    Information supplémentaire n° 4: e3c27ebfc6ae5f4a67ead6db91d19f12


    quelqu'un aurait une idée? c'est assez important...
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      3 mai 2011 à 20:24:07

      Tu essaies de dessiner sur un point qui n'existe pas car l'écran est trop petit, peut-être ?
      • Partager sur Facebook
      • Partager sur Twitter
        4 mai 2011 à 8:27:50

        je dessine directement sur l'écran...
        public void FonctionDessin()
                {
                    //Dessin
                    points = new Point[MesCoordonnees.Count];
                    for (int i = 0; i < points.Length; i++)
                    {
                        points[i] = new Point(MesCoordonnees[i].X, MesCoordonnees[i].Y);
                    }
                    //Définie le pinceau
                    Pen MonPen = new Pen(Color.Red, 10.0f);
                    // source du contenu http://stackoverflow.com/questions/1536141/how-to-draw-directly-on-the-windows-desktop-c
                    /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                    IntPtr desktop = GetDC(IntPtr.Zero);//Point sur le bureau
                    try
                    {
                        g = Graphics.FromHdc(desktop);
                        g.SmoothingMode = SmoothingMode.AntiAlias;//Antialiasing
                        g.DrawLines(MonPen, points);
                    }
                    finally
                    {
                        if (desktop != IntPtr.Zero)
                        {
                            ReleaseDC(desktop);//Enleve le pointeur
                        }
                    }
                    /////////////////
                    // Fin du contenu
                }
        

        je pense que le problème vient des Point parce que je les recupère d'un hook souris...et queje veux déssiner en meme temps que le mouse move que voici:

        #region Evenement lors du déplacement de la souris /// points dans liste /// appel fonct. dessin
                void HookSouris_MouseMove(object sender, MouseEventArgs e)
                {
                    //ajoute les coordonnées au points
                    MesPoints = new Point(e.X, e.Y);
                    //ajoute les point au tableau
                    MesCoordonnees.Add(MesPoints);
                    FonctionDessin();//dessine
                }
        
        • Partager sur Facebook
        • Partager sur Twitter
          5 mai 2011 à 10:40:28

          Ca me parait un peu violent de tout redessiner à chaque déplacement de la souris au vu du code, mais pourquoi pas ... je sais pas trop ce que tu veux faire donc bon ..

          Sinon une petite modif :
          public void FonctionDessin()
                  {
                      //Dessin
                      points = new Point[MesCoordonnees.Count];
                      for (int i = 0; i < points.Length; i++)
                      {
                          points[i] = new Point(MesCoordonnees[i].X, MesCoordonnees[i].Y);
                      }
                      //Définie le pinceau
                      Pen MonPen = new Pen(Color.Red, 10.0f);
                      // source du contenu http://stackoverflow.com/questions/1536141/how-to-draw-directly-on-the-windows-desktop-c
                      /////////////////////////////////////////////////////////////////////////////////////////////////////////////
                      IntPtr desktop = GetDC(IntPtr.Zero);//Point sur le bureau
                      try
                      {
                          g = Graphics.FromHdc(desktop);
                          g.SmoothingMode = SmoothingMode.AntiAlias;//Antialiasing
                          g.DrawLines(MonPen, points);
                      }
                      finally
                      {
                          if (desktop != IntPtr.Zero)
                          {
                              ReleaseDC(desktop);//Enleve le pointeur
                          }
                      }
                      MonPen.Dispose(); // NE PAS OUBLIER DE LIBERER LES RESSOURCES !
                      /////////////////
                      // Fin du contenu
                  }
          
          • Partager sur Facebook
          • Partager sur Twitter

          Gdi+ windows 7 x64

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown