Welcome to my blog

Here, I talk about my projects, .Net, and work.

18 Oct, 16

Récupérer la vraie résolution d’un écran en C# ou comment Windows m’a écarté l’Anus


Hello World à tous !

Tu essayes de récupérer la résolution d’écran de tous tes moniteurs en C# et tu t’arraches les cheveux ? Tu es au bon endroit.

Je viens de passer l’après-midi à tenter de récupérer la résolution de tous mes écrans (internes + externes) sans que la taille du texte, apps et autre de Windows, que l’écran principal ou que la rotation d’un écran externe ne vienne me faire démouler un cake.

Le scénario

Dans le cadre d’un projet personnel, je dois développer une application WPF. Je souhaite faire en sorte qu’une même fenêtre de cette application soit ouverte sur chaque écran du PC et prenne une certaine dimension en fonction de la résolution de l’écran ciblé. Il ne me faut donc pas juste récupérer la résolution de l’écran principal (primaire) ou la résolution global (somme de tous les écrans), mais bien récupérer la résolution de tous les écrans connectés au PC.

Pour cela, rien de plus simple, il me suffit d’utiliser l’API suivante :

Oui mais ! Ceux qui ont fait cette API (et je pense que j’irais leur dire bonjour la prochaine fois que je retourne à Redmond) ont dû trouver que c’était trop facile.

Read more
6 Oct, 16

Stage a Microsoft 3.0 – Retrospective – Visual Studio 15′ Prev 5


Hello World !

Ça y est, l’été, c’est terminé. Contrairement à l’an dernier, je n’ai pas fait un article par semaine, car tout simplement il n’y a pas d’intérêt à tout répéter. J’ai déjà raconté une bonne partie de ce qu’il y a à dire sur un stage à Microsoft, du moins tout ce que j’ai le droit de dire. Je vais donc en parler de manière plus réduite en essayant de parler de ce qui a été nouveau et plus globalement, ce que j’ai été amené à réaliser.

Le job

J’ai donc travaillé durant 12 semaines avec l’équipe VS IDE Project & Telemetry de Visual Studio. C’est en fait deux petites équipes en une, constituées de 5-6 personnes à chaque fois, avec un seul manager. Les deux parties sont donc :

  1. Telemetry, qui travaille sur le développement des apis et outils internes concernant la télémétrie de Visual Studio. C’est en fait l’équipe dans laquelle j’étais il y a deux ans.
  2. Project, là où je suis cette année, travail sur les fonctionnalités de Visual Studio qui permettent de gérer les projets et solutions au niveau global. Ça signifie qu’on ne va pas rentrer dans les détails des projets dédiés au C# par exemple, il y a une autre équipe pour ça, celle qui réalise les outils de développement spécifique au C#.

Dans cette équipe, comme à chaque fois, j’ai fait face à des nationalités diverses et variées. Un chilien, trois américains, deux russes, un bulgare, un indien, un ukrainien, deux chinois.

Read more
30 Mai, 16

Stage à Microsoft 3.0


Hello World !

Ca y est, Juin approche, et c’est l’occasion de dire que je repars pour un troisième stage à Microsoft cet été, tout près de Seattle aux Etats-Unis, du 25 Juin au 23 Septembre.

Cette année, mes parents viendrons en Juillet et ma copine en Août, pour visiter la région. Ca va être sympa. J’ai déjà prévu d’aller à Vancouver au Canada avec cette dernière début Septembre.

Je serais encore et toujours dans la division développeur (DevDiv). J’avais demandé les équipes qui travaillent sur les systèmes d’exploitation (OSG, Operating System Group) mais ma RH a dû oublier ce détail. Je change tout de même d’équipe. J’intègre l’équipe Visual Studio IDE Project & Telemetry. Ce n’est pas la même équipe que lors de mon tout premier stage en 2014, mais le hasard fait que mon manager est le même qu’en 2014. Ca fait plaisir de retrouver tout de suite un visage connu.
Je sais déjà sur quoi je travaillerai exactement, et comme l’an dernier je ne pourrai pas beaucoup en parler avant une sortie officielle. Je sais également que dans cette équipe on fait principalement du C++ et du C#, encore deux langages que j’apprécie. J’ai hâte de me remettre au boulot à Corp.

Je ne vais sûrement pas faire d’articles hebdomadaires comme l’an dernier, ça sera sûrement plus ponctuel. D’ailleurs, je vous invite à me poser des questions dans les commentaires sur des points que vous aimeriez connaître autour du sujet « faire un stage à Microsoft ». Je ne sais pas moi, le visa, la vie avec les autres stagiaires, ce que vous voulez tant que j’ai le droit d’en parler librement.

Articles précédents :

  1. Stage à Microsoft 1.0
  2. Stage à Microsoft 2.0

À bientôt !

4 Mar, 16

[SoftwareZator] This Is It


TL;DR

Bonjour,

Suite à une évolution de mon parcours personnel et professionnel, je souhaite mettre fin au support de SoftwareZator. La version 2012 (3.0.0.3) est donc la dernière version stable à ce jour (mais n’est pas supportée par Windows 10).

Merci de votre compréhension.


Hello World à tous !

Quel triste nouvelle j’annonce aujourd’hui, mais en même temps, on s’y attendait.

Voici 4 ans que SoftwareZator 2012 a vu le jour. C’était de loin la version la plus aboutis de ce projet. Il a été mon projet le plus ambitieux : donner la possibilité à n’importe qui de développer. Je le considère encore comme un petit bébé. Il a été un tremplin à ma carrière.

Mais toute bonne chose à une fin. J’avais 14 ans quand j’avais commencé ce projet. J’en ai 23 aujourd’hui. Les gens changes, le parcours professionnel aussi, et le temps personnel aussi.

Read more
3 Mar, 16

[MSIL] Désassembler, modifier, recompiler un Assembly .Net / WinRT


Hello World à tous !

Voici quelques mois que je n’ai pas écrit d’article. Aujourd’hui nous allons voir comment désassembler, modifier et recompiler un EXE ou une DLL précédemment compilé en .Net ou en WinRT.

Avant toute chose, une petite mise en garde au cas où : désassembler un programme peut s’avérer être illégal selon la licence associée au composant que vous allez exploiter.

Voilà, je me sens beaucoup mieux. 🙂
Qu’allons-nous voir plus précisément ?

ILDASM et ILASM

Je m’attaque à un cas de figure particulier. Généralement nous désassemblons un Assembly grâce à des outils comme JustDecompile ou .Net Reflector. Ces deux outils ont l’avantage de nous afficher du code C# compréhensible de tous, et même de l’exporter sous forme de projet pour Visual Studio. Seulement quelquefois, ça ne fonctionne pas très bien. Et c’est pire quand l’Assembly a été obfusqué auparavant (là en général c’est un désassemblage totalement illégal…) car ça ne compile même pas et il faudrait des jours voir des semaines pour obtenir un code qui compile correctement sans avoir changé le comportement du programme.

Du coup, la solution que je propose est de mettre la main dans le MSIL (Microsoft Intermediate Language). C’est un langage intermédiaire généré lors de la compilation et qui est converti par la suite en code natif. L’avantage est que même obfusqué, il est compilable.

Read more