Piratage LaserCAD (2 / 4 étapes)

Étape 2: Comment ça marche...

Sélection de polices

LaserCAD utilise la librairie GDI + de Microsoft pour la gestion des polices. Lorsque vous sélectionnez une police dans le menu déroulant sur la zone de texte modifier une liste des polices disponibles s’affiche. Après avoir entrer du texte et cliquez sur Ok, LaserCAD copie le nom de famille de polices dans la liste déroulante et passe à GDI + à l’aide de code qui ressemble à quelque chose comme ceci :

PwzFontFamily Voici la chaîne de texte tirée de la ComboBox de polices. fSize est un flotteur avec la taille de la police taille déroulante et iStyle a drapeaux pour gras, italique et soulignement (etc..)

Lorsque ce constructeur est appelé, le code de Microsoft (source est disponible) appelle GdipCreateFont() en passant des informations similaires. Si une police correspondante ne peut pas être trouvée et code d’erreur et le code de Microsoft passera ensuite à une police San Serif générique comme indiqué ci-dessous :

Tel que mentionné précédemment, afin d’obtenir la police correcte de LaserCAD comme-est, il faut savoir si la police que vous avez sélectionné doit souligner en gras, italique ou (rare) inclus dans la liste style passée à GdipCreateFont. Une police comme Monotype Corsiva par exemple n’existe que comme un italique. Si Gdiplus::FontStyle::FontStyleRegular est passée à GdipCreateFont, comme le sera le cas si un des boutons gras, italique ou souligné n’est pas coché, GdipCreateFont échoue à trouver le Monotype Corsiva italique uniquement et la police de San Serif générique sera utilisée.

Le correctif de sélection de polices

Pour résoudre ce problème, que nous allons utiliser le code suivant à si la police sélectionnée prend en charge les gras, italique, souligné ou normale :

Une fois que nous savons quels styles le support des polices nous pouvons désactiver les boutons qui ne s’appliquent pas. Si la police ne prend pas en charge les FontStyle::FontStyleRegular mais prend en charge les gras ou italique, l’un d'entre eux sera vérifié. Si seulement on est pris en charge il est également désactivé afin qu’il ne peut pas être coupée.

Pour être capable de faire cela, j’ai intercepter rappel DialogProc l’éditer texte du dialogue. Cela pourrait se faire par l’intermédiaire de sous-classement, mais une technique différente a été utilisée ici qui déborde le cadre de cet article. Le code d’origine pourrait être fixé en altérant la DialogProc existant pour faire la même chose.

Saisie de texte et rendu

Le bogue avec la saisie de texte non-ANSI (non anglophones) se produit car la DialogProc lit le texte dans le contrôle d’édition à l’aide d’une fonction ANSI, comme GetDlgItemTextA. La fenêtre elle-même (comme avec la plupart des contrôles RichEdit) est capable de retenir le texte Unicode, mais l’appel à GetDlgItemTextA ne sera pas en mesure de représenter les caractères correctement et les remplacera avec points d’interrogation ou autres caractères de remplacement.

Pour résoudre ce problème, étant donné que je ne peux pas changer facilement le code existant, j’ai placé un crochet sur la EndDialog d’API Windows. Ma fonction de raccordement est illustrée ci-dessous :

Il fonctionne en lisant le texte du contrôle d’édition avant la fermeture de la boîte de dialogue et de stocker ce texte dans une variable globale : g_wstrLastKnownText.

L’étape finale consiste à accrocher la fonction GDI + qui est utilisée pour restituer le texte : GdipAddPathString. Lorsqu’il est appelé, j’ai remplacer tout simplement le texte qui lui est passé avec la chaîne que j’ai sauvé depuis le contrôle d’édition. Malheureusement, le texte qui a été passé à GdipAddPathString par LaserCAD devait être reconvertie en une chaîne Unicode avant il pouvait être envoyé à GdipAddPathString, mais, le mal avait déjà été fait. Voici mon remplacement pour GdipAddPathString :

Cela fait, il est maintenant possible de saisir du texte non-ANSI du contrôle d’édition et l’ai rendu correctement pour Laser découpe / gravure !

Le correctif nécessaire

Le code de LaserCAD pourrait être fixé par la simple utilisation de Unicode (wchar_t) au lieu de tampons caractère ANSI (char) lors de la lecture de la chaîne du contrôle d’édition. Tant qu’il est jamais converti en une chaîne ANSI il rendra correctement lorsqu’il est passé à GdipAddPathString.

Articles Liés

BRICOLAGE : Immobilisateur de piratage des clés perdues ou troqué ECU

BRICOLAGE : Immobilisateur de piratage des clés perdues ou troqué ECU

BRICOLAGE : dispositif d'immobilisationPiratage des clés perdues ou troqué ECUVoici comment reprogrammer l'immobilisateur de moteur de votre voiture de nouvelles clefs de programme dans l'inventer des clés perdues ou un écu échangé.BRICOLAGE vidéo :A
Piratage de Kinect (Article)

Piratage de Kinect (Article)

lorsque Microsoft a publié son système Kinect pour Xbox 360 il était dans l'espoir de donner une impulsion à la console et de vendre des jeux. Il a certainement frappé cette cible avec quelques ventes, mais la vraie surprise a été qu'une technologie
L’astuce piratage mieux!!!

L’astuce piratage mieux!!!

Le piratage meilleures astuces jamaisUne grande collection de hacks et astuces!!Pour plus de projets, visitez :instructablesprojects.blogspot.comÉtape 1: Comment télécharger apk directement sur Google Play Store sur pcComment faire pour télécharger d
Piratage le Trakr vidéo espion avec Frickin' faisceaux Laser... Et les Missiles !

Piratage le Trakr vidéo espion avec Frickin' faisceaux Laser... Et les Missiles !

Avec la permission de CPT Hans.J'ai acheté un lance-missile USB-powered mousse, qui a pan & tilt et même un ciblage au laser ! Je suis mise sous tension du port USB interne de la Trakr et contrôle les lignes GPIO.Étape 1 : L'original de contrôle des
Piratage le Spy Video Trakr II

Piratage le Spy Video Trakr II

dans la précédente Instructable, "Hacking the Spy vidéo Trakr" ( vous avez appris à ouvrir la Trakr et installer les chevêtres masculins dans les connexions GPIO sur le circuit. Vous avez également appris à écrire, compiler et installer un progr
Comment faire une télécommande sentient web-marionnette de piratage de Twitter, Google, Skype, Arduino et traitement !

Comment faire une télécommande sentient web-marionnette de piratage de Twitter, Google, Skype, Arduino et traitement !

Comment pour manipuler un objet physique sur le web en utilisant les services web communs et leurs données accessibles simplement nourrit, avec certains ajouté ouvrir des choses source de décoder et de manipuler ces données et en fin de compte utilis
Auto piratage USB

Auto piratage USB

Dans cette insondable je vais vous montrer comment faire une auto piratage de clé USB. Il s'agit de mon premier tutoriel nu avec moi.Aussi ce tutoriel devrait servir à des fins juridiques et éducatifs. Je ne suis pas responsable de vous faire quelque
Comment faire un Auto-piratage USB

Comment faire un Auto-piratage USB

je t'enseignerai comment faire une base Auto-piratage USB. Il n'y a probablement plusieurs variationsof différentes cela. Je vais vous montrer les plus élémentaires.Vous avez besoin de deux choses :1) une clé USB consacré à cette2) les programmes et
Avion dans un Globe - piratage un capteur PIR pour faire votre appel d’offres

Avion dans un Globe - piratage un capteur PIR pour faire votre appel d’offres

Salut tous.Jamais eu une idée pop dans votre tête et vous ne pouvez pas arrêter de penser ?  Eh bien, mon idée était d'avoir un petit avion qui tourne à l'intérieur d'une ampoule électrique, activée par un détecteur !  Oui, je sais - pas beaucoup d'u
Vélo 101 piratage - comment procéder à une autopsie de vélo

Vélo 101 piratage - comment procéder à une autopsie de vélo

Démonter un véloConstruction de vélos personnalisés est un grand passe-temps qui peuvent être appris par n'importe qui avec un désir de créer. Les compétences nécessaires pour démonter, modifier et réparation vélo composants peuvent être facilement a
Jouet de piratage

Jouet de piratage

TOUS LES ENFANTS APPRENNENT MIEUX EN S'AMUSANT. MAIS PAS TOUS LES JOUETS SONT CRÉÉS ÉGAUX.JOUET DE PIRATAGE EST UN MOYEN D'AVOIR L'APPRENTISSAGE AMUSANT SUR LA FABRICATION ET LE PIRATAGE ALORS QUE QUELQUE CHOSE DE BIEN POUR LES PLUS DÉMUNIS DES ENFAN
Comment démarrer le piratage Roms Pokemon Gba

Comment démarrer le piratage Roms Pokemon Gba

Jeux Pokémon (spécifiquement les roms gba) ont été que tout le monde est préféré. Ils sont les plus vendus de roms. Presque tous les enfants du monde entier, est ou a été un Pokéfan.This instructable porte sur la façon de commencer le piratage roms g
Piratage d’ordinateur pour les Noobs

Piratage d’ordinateur pour les Noobs

comment pirater vous êtes compte de l'ordinateur à l'aide de la commande pronpt. Ce truc est vraiment intéressant et mal!!!** Edit **** Annonce **OK, à la demande populaire, Imgo ajouter réelles captures d'écran, utiliser le correcteur orthographique
Piratage de l’espion vidéo Trakr III : faire un Bot Grabber de Legos, Snap Circuits et l’espion vidéo Trakr

Piratage de l’espion vidéo Trakr III : faire un Bot Grabber de Legos, Snap Circuits et l’espion vidéo Trakr

dans ce instructable je démontrerai comment utiliser des Legos, Snap Circuits et l'espion vidéo Trakr pour créer un bot grabber contrôlé à distance. Je démontrerai comment télécharger et installer le compilateur de langage C pour le Trakr. Ensuite, j