0 votes

Comment fonctionne le formulaire de superposition( ?) dans JING

OK, quelqu'un peut-il expliquer comment Jing prend des captures d'écran avec ce formulaire de superposition ? Il semble qu'il prenne une capture d'écran complète et enregistre toutes les poignées de fenêtres visibles et vous permet de sélectionner dans le formulaire un hwnd spécifique. Est-ce vrai ? Si c'est le cas, quelles sont les grandes étapes pour y parvenir ? Il pourrait s'agir d'une simple boîte à images ou sans un contrôle personnalisé, je n'ai pas la possibilité de geler l'écran tout en prenant une capture d'écran ?

Merci de votre attention !

1voto

Hans Passant Points 475940

Je ne connais pas suffisamment Jing pour savoir exactement ce qu'il utilise. Mais il existe deux techniques de base. La première consiste, comme vous le mentionnez, à capturer l'écran et à l'afficher dans une forme sans bordures. L'outil Snipping de Vista/Win7 fonctionne de cette manière. Vous trouverez le code dont vous avez besoin pour démarrer dans ma réponse dans este hilo .

L'autre, peut-être plus susceptible d'être utilisée par Jing, est similaire à ce que fait Spy++, permettant à l'utilisateur de déplacer la souris et de dessiner un rectangle de sélection autour de la fenêtre. Son avantage est qu'elle permet de gérer le redimensionnement ou la disparition de Windows pendant que l'outil fonctionne. Vous l'implémentez en utilisant une forme supérieure de la taille de l'écran dont la propriété TransparencyKey est définie sur la valeur de BackColor. Le fuchsia est un choix populaire. Vous pouvez dessiner sur ce formulaire avec la méthode OnPaint(), le dessin apparaît au-dessus de toutes les fenêtres. Vous aurez besoin d'un P/Invoke (GetWindow) pour itérer les fenêtres sous-jacentes dans leur ordre Z afin de savoir quelle fenêtre est pointée par l'utilisateur. GetWindowRect() pour obtenir le rectangle de la fenêtre. Plus un peu de travail pour gérer les mensonges d'Aero sur la taille des bordures.

Vous trouverez un exemple de code pour vous aider à mettre en œuvre cette technique dans ma réponse à la question suivante este hilo .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X