Editeur PureBasic : Capturer une portion de code

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
falsam
Messages : 7321
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Editeur PureBasic : Capturer une portion de code

Message par falsam »

Avec une API Windows, il est possible de capturer une portion de code sélectionnée dans l'éditeur de Pure basic.
Sauvegarder et créer un exécutable du code ci-dessous puis intégrer l’exécutable dans les outils de Pure Basic.

Code : Tout sélectionner

HandleIDESci=Val(GetEnvironmentVariable("PB_TOOL_Scintilla"))
SendMessage_(HandleIDESci, #WM_COPY,0,0) 

MessageRequester("Information capturée",GetClipboardText())
Sélectionner une portion de code de n'importe quelle source et lancer l'outil que vous venez d'intégrer.

Ma question est la suivante : Est il possible de faire la même chose sans passer par une api ?

S'agissant d'un éditeur scintilla, j'ai tenté de le faire avec ScintillaSendMessage() mais sans résultat. Peut être que je m'y suis mal pris. Merci de votre aide :)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Editeur PureBasic : Capturer une portion de code

Message par Backup »

....
Dernière modification par Backup le lun. 18/août/2014 16:31, modifié 1 fois.
Avatar de l’utilisateur
falsam
Messages : 7321
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Editeur PureBasic : Capturer une portion de code

Message par falsam »

Ton code ne peux pas fonctionner si on cherche à capturer du texte figurant dans l'éditeur officiel de Pure Basic.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Editeur PureBasic : Capturer une portion de code

Message par Backup »

......
Dernière modification par Backup le lun. 18/août/2014 16:32, modifié 3 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Editeur PureBasic : Capturer une portion de code

Message par Backup »

j'ajoute que ton petit prg externe , qui surveille si le press papier est rempli
peut aussi analyser le contenu , le changer

ensuite il suffirai de convenir d'une couleur de fenetre , qui t'indiquera , qu'un Ctrl+V est possible
pour modifier la selection de l'editeur ... ;)
Avatar de l’utilisateur
falsam
Messages : 7321
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Editeur PureBasic : Capturer une portion de code

Message par falsam »

Dobro a écrit :j'ajoute que ton petit prg externe , qui surveille si le press papier est rempli
peut aussi analyser le contenu , le changer
Oui tu as raison je l'avais oublié ce petit code. Mais le but de mon utilitaire est de charger une portion de code sélectionnée par un utilisateur sans que l'utilisateur utilise la combinaison de touche Ctrl+C pour copier en mémoire. C'est vrai aussi qu'un Ctrl+C c'est pas le bout du monde :mrgreen:
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Editeur PureBasic : Capturer une portion de code

Message par Backup »

falsam a écrit : Mais le but de mon utilitaire est de charger une portion de code sélectionnée par un utilisateur sans que l'utilisateur utilise la combinaison de touche Ctrl+C pour copier en mémoire.
oui c'est bien ce point qui me chagrine ... :)
perso, je force toujours une action de l'utilisateur , le ctrl+c...ctrl+v reste un basique :)

ton prg de surveillance, peut aussi emettre une petite musique, pour dire qu'il est rempli
et une autre pour dire que le contenu a été modifié :)

(voir utilisation de la synthese vocal ... message pré enregistré ) )

j'aime bien utiliser les synthetiseur en ligne :
http://www.acapela-group.com/text-to-sp ... -demo.html

tu tapes tes phrases , tu enregistres avec Audacity
et tu met tes sons dans ton soft ! :)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Editeur PureBasic : Capturer une portion de code

Message par Backup »

message edité ;)
Avatar de l’utilisateur
falsam
Messages : 7321
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Editeur PureBasic : Capturer une portion de code

Message par falsam »

pas mal ce synthétiseur. Merci pour le lien.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Editeur PureBasic : Capturer une portion de code

Message par nico »

Je ne sais pas si j'ai tout suivi mais un argument dans les outils personnalisés te permet de récupérer la portion de code sélectionné:

%SELECTION qui te donne la réponse sous forme ligne debut * colonne debut * ligne fin * colonne fin --> 15*1*16*5

donc il faut le combiner avec %COMPILEFILE POUR AVOIR LE TEXTE ENTIER et ensuite avec les coordonnées récupérer la portion de texte sélectionnée.
Avatar de l’utilisateur
falsam
Messages : 7321
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Editeur PureBasic : Capturer une portion de code

Message par falsam »

Merci Nico pour cette information qui m'a menée aux variables d'environnement de Pure basic.

La variable d'environnement PB_TOOL_Selection depuis un outils externe (Pour ne pas le citer Code Form Helper :mrgreen: ) me permet de connaitre les paramètres de sélection dans l'ide.

Il me restait plus qu'à connaitre le fichier concerné. je pensais m'en sortir avec la variable d'environnement PB_TOOL_FileList et là ...... c'est le drame : Dans le cas d'un projet cette variable renvoie les noms de tous les fichiers référencés dans ce projet.

La combinaison PB_TOOL_Selection & PB_TOOL_FileList ne peut plus fonctionner.

Je suis de nouveau obligé de passer par la variable PB_TOOL_Scintilla pour connaitre le handle du gadget scintilla de l’éditeur Pure Basic ou l'éditeur JaPbe et de passer par une API Windows pour capturer la sélection utilisateur.

Code : Tout sélectionner

  ;Si l'utilitaire est lancé en temps qu'outil : Mémorisation de la sélection
  HandleIDESci=Val(GetEnvironmentVariable("PB_TOOL_Scintilla"))
  
  If HandleIDESci
    SendMessage_(HandleIDESci, #WM_COPY,0,0)   
  EndIf
A cause de cette API mon utilitaire ne peut pas être compilé pour environnement Mac et Linux (Sous réserve d'avoir un Mac :p)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
falsam
Messages : 7321
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Editeur PureBasic : Capturer une portion de code

Message par falsam »

Quel serait l'équivalence de SendMessage_(HandleIDESci, #WM_COPY,0,0) sous environnement Linux et Mac OS ?
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre