Au fil des flows

22août/120

Outil pour faire des recherches dans la base de registre

Posted by Fabien Arcellier

Cherchant à identifier comment labview structuré l'installeur de ses produits, j'ai eu à parcourir la base de registre.
National Instrument documente très peu les aspects implémentations de leurs produits. Je trouve ça regrettable car ça complique l'intégration d'application Labview dans un écosystème d'applications.

Revenons à nos moutons, j'ai découvert l'outil regscanner qui permet d'effectuer des recherches dans la base de registre. C'est un outil agréable qui évite d'appuyer un nombre incroyable de fois sur F3.

Vous pouvez en plus réaliser des exports du résultat de vos recherches et ainsi vraiment analyser la base de registre sous des angles différents.

Pour le télécharger : http://www.nirsoft.net/utils/regscanner.html.

Remplis sous: Non classé Aucun commentaire
4jan/127

Voir une image sur le debugger de Visual Studio

Posted by Fabien Arcellier

L'absence dans visual studio d'une fonction pour visualiser une image au debug peut paraitre étonnanet. J'avais à mettre en forme une image. Même si je ne suis pas adepte du debugger, cette fonctionnalité me manquait. Ca m'ennuyait de devoir enregistrer un fichier ou de créer un formulaire dans le code pour voir le résultat en cours de route.

Depuis Visual studio 2005, l'IDE offre une possibilité très intéressante. Celle de pouvoir rajouter une vue rapide entièrement personnalisée sur n'importe quel type d'objet. Voila comment Tomer Noy a comblé cette absence. Il a ecrit un article sur codeproject qui explique comment le faire en 10 lignes de code.

A voir la simplicité de mise en oeuvre, on dirait que c'est presque volontairement que Microsoft n'offre pas cette possibilité en natif. Ainsi le developpeur peut découvrir par lui même les capacités de visual studio.

Voici le code source qu'il propose :

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using Microsoft.VisualStudio.DebuggerVisualizers;
  5. using System.Windows.Forms;
  6. using System.Drawing;
  7.  
  8. [assembly: System.Diagnostics.DebuggerVisualizer(
  9. typeof(ImageVisualizer.DebuggerSide),
  10. typeof(VisualizerObjectSource),
  11. Target = typeof(System.Drawing.Image),
  12. Description = "Image Visualizer")]
  13. namespace ImageVisualizer
  14. {
  15.     public class DebuggerSide : DialogDebuggerVisualizer
  16.     {
  17.         override protected void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
  18.         {
  19.             Image image = (Image)objectProvider.GetObject();
  20.            
  21.             Form form = new Form();
  22.             form.Text = string.Format("Width: {0}, Height: {1}", image.Width, image.Height);
  23.             form.ClientSize = new Size(image.Width, image.Height);
  24.             form.FormBorderStyle = FormBorderStyle.FixedToolWindow;
  25.            
  26.             PictureBox pictureBox = new PictureBox();
  27.             pictureBox.Image = image;
  28.             pictureBox.Parent = form;
  29.             pictureBox.Dock = DockStyle.Fill;
  30.  
  31.             windowService.ShowDialog(form);
  32.         }
  33.     }
  34. }
  35.  

Pour que ça fonctionne, vous devez compiler le projet. Pour le déploiement, il suffit de placer l'assembly obtenu (ImageVizualizer.dll) dans le dossier suivant <Visual Studio Install Dir>\Common7\Packages\Debugger\Visualizers.

Pour les utilisateurs de Visual studio 2010, vous ne pourrez pas directement compiler son projet. Il vous faut redéfinir la référence vers l'assembly Microsoft.VisualStudio.DebuggerVisualizers. Vous devrez aller le chercher dans le dossier C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0.

Pour les utilisateurs de Visual studio 2008, l'assembly se trouve dans la liste des références dotNet.

Comment ca fonctionne ?

Vous héritez de la classe DialogDebuggerVisualizer. L'attribut en entête du namespace va permettre à Visual studio d'enregistrer votre plug in.

Ensuite, vous surchargez la méthode protege Show de DialogDebuggerVisualizer. Lors de l'invocation de cette methode, une Form est crée dynamiquement. Elle contient PictureBox dans laquelle le debugger va charger l'image. Ensuite, l'IDE invoque la form au travers de la ligne windowService.ShowDialog(form).

Telechargement

J'ai repris le code proposé par Tony pour ajouter un menu contextuel avec la fonction copie.

Code source du projet :  ImageVisualizer (Code source)

Assembly : ImageVisualizer (assembly)

Remplis sous: Non classé 7 Commentaires
1jan/120

Evernote Clearly pour rendre la lecture et la capture d’article plus facile

Posted by Fabien Arcellier

Voici un petit outil sur lequel je suis tombé en farfouillant dans les extensions proposées pour le logiciel Evernote sous Windows.

Si vous ne connaissez pas, evernote est un service sur Internet qui vous permet de centraliser tout ce qui vous passe par la tête sous la forme de notes. Vous pourrez retrouver ces notes partout. Que ce soit sur votre ordinateur, votre smartphone ou votre tablette, ... vous pouvez y accéder depuis n'importe quel terminal soit par un logiciel dédié soit par l'interface en ligne.

C'est simple, je m'en sers pour tout. Noter les comptes rendus hebdomadaires, noter une petite synthèse dès que je fais une recherche technique, faire du suivi d'actualité ...

Evernote Clearly est une application complementaire qui vient se greffer à votre navigateur navigateur internet (Firefox ou Chrome). Cette extension vient retirer toutes les fioritures autour d'une page internet. Il ne reste plus que le texte brut avec une mise en forme standardisé. Je trouve la lisibilité meilleure.

Exemple sur une nouvelle du site Developpez.com :

donnera la page suivante :

Au delà, l'intéret est lien avec Evernote. Cet outil permet de capturer la page ainsi reformatée et de l'importer directement dans Evernote. Plus aucun problème de mise en forme suite à un copier coller.

Pour conclure, cette extension n'est pas une révolution mais elle offre un outil pratique qui vient parfaitement s'intégrer à un écosystème applicatif construit autour de services webs.

 

 

Remplis sous: Non classé Aucun commentaire