Récupérer le texte de l'onglet actif de l'éditeur PB...
Récupérer le texte de l'onglet actif de l'éditeur PB...
Salut,
Je voudrais Récupérer le texte de l'onglet actif de l'éditeur PB, depuis un autre programme, comme je peut faire ça svp ?
Je voudrais que mon programme scanne le texte dans l'onglet actif de PB pour l’analyser, faire des vérification etc...
Je voudrais Récupérer le texte de l'onglet actif de l'éditeur PB, depuis un autre programme, comme je peut faire ça svp ?
Je voudrais que mon programme scanne le texte dans l'onglet actif de PB pour l’analyser, faire des vérification etc...
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Re: Récupérer le texte de l'onglet actif de l'éditeur PB...
Bonjour,
Tu as les infos dans le fichier : PureBasic.prefs qui se trouve dans : C:\nom d'utilisateur\AppData\Roaming\PureBasic
Bien évidement il faut afficher les fichiers cacher si ça n'est pas déjà fait.
@++
Tu as les infos dans le fichier : PureBasic.prefs qui se trouve dans : C:\nom d'utilisateur\AppData\Roaming\PureBasic
Bien évidement il faut afficher les fichiers cacher si ça n'est pas déjà fait.
@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Récupérer le texte de l'onglet actif de l'éditeur PB...
Faire des vérifications de ?Shadow a écrit :Je voudrais que mon programme scanne le texte dans l'onglet actif de PB pour l’analyser, faire des vérification etc...
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Récupérer le texte de l'onglet actif de l'éditeur PB...
Salut, est ce que tu es bien sur de ça ?venom a écrit :Bonjour,
Tu as les infos dans le fichier : PureBasic.prefs qui se trouve dans : C:\nom d'utilisateur\AppData\Roaming\PureBasic
Bien évidement il faut afficher les fichiers cacher si ça n'est pas déjà fait.
Voici ce que j'ai écris:
Je voudrais recevoir le texte de l'onglet actif de PB, celui qui est actuellement éditer dans PB, en temps réel, dès qu'il y à une modificationSalut,
Je voudrais Récupérer le texte de l'onglet actif de l'éditeur PB, depuis un autre programme, comme je peut faire ça svp ?
Je voudrais que mon programme scanne le texte dans l'onglet actif de PB pour l’analyser, faire des vérification etc...
et je ne vois pas en quoi le fichier PureBasic.prefs a à voir là dedans ?
@falsam, vérification de la syntaxe en temps réel.
@++
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Re: Récupérer le texte de l'onglet actif de l'éditeur PB...
Personnellement, je comprends que tu souhaite récupérer le titre de l'onglet. Et ma méthode est bonne. Par contre si tu souhaite récupérer le texte contenu dans l'onglet actif, là c'est pas la même chose.Shadow a écrit :Je voudrais Récupérer le texte de l'onglet actif
Mais grâce au fichier PureBasic.prefs tu peux récupérer le chemin du fichier qui est susceptible d'être modifié, et ainsi scanner se dernier en cas de modification
@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Re: Récupérer le texte de l'onglet actif de l'éditeur PB...
Sans oublier %temp%\PB_EditorOutput.pb qui garde la source du dernier fichier compilé dans l'IDE (tant que celui-ci reste ouvert)
Utiliser les variables système Windows permet de faire des programmes compatibles quelque soit le disque, répertoire de Windows et le nom d'utilisateur.
Répertoire temporaire et répertoire des données des programmes. (donc .prefs)
Sous "dos" ou avec l'explorateur
Sous PB
Utiliser les variables système Windows permet de faire des programmes compatibles quelque soit le disque, répertoire de Windows et le nom d'utilisateur.
Répertoire temporaire et répertoire des données des programmes. (donc .prefs)
Sous "dos" ou avec l'explorateur
Code : Tout sélectionner
dir %temp%
dir %appdata%\purebasic
Code : Tout sélectionner
Debug GetTemporaryDirectory()
Debug GetUserDirectory(#PB_Directory_ProgramData) ; PB 5.60
Re: Récupérer le texte de l'onglet actif de l'éditeur PB...
Merci Marc56.
Je ne veux pas récupérer le texte que quand le programme est compilé ou enregistrer, mais dès qu'il est modifié !
Il faut que j’accède à l'onglet actif de PB pour récupérer le code qui est tapé !
Je ne veux pas récupérer le texte que quand le programme est compilé ou enregistrer, mais dès qu'il est modifié !
Il faut que j’accède à l'onglet actif de PB pour récupérer le code qui est tapé !
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Re: Récupérer le texte de l'onglet actif de l'éditeur PB...
J'ai trouvé ça, mais ça ne fonctionne pas, les variable n’existe pas:
Code : Tout sélectionner
;Handle de l'IDE / Handle of IDE
HandleIDESci=Val(GetEnvironmentVariable("PB_TOOL_Scintilla"))
If HandleIDESci
;Position du curseur dans le source en cours d'édition / Cursor position in the source being edited
SendMessageTimeout_(HandleIDESci,#SCI_GETSELECTIONSTART, 0, 0, #SMTO_ABORTIFHUNG, 2000, @CursorPosition)
;Mémorise la position du curseur pour l'indentation (Nombre d'espaces avant le mot clé)
;Stores the cursor position For indentation (Number of spaces before the keyword)
LigCol = GetEnvironmentVariable("PB_TOOL_Cursor") ;Lig x Col
EndIf
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Re: Récupérer le texte de l'onglet actif de l'éditeur PB...
J'ai trouvé ça, mais ça ne fonctionne pas, les variable n’existe pas:
Code : Tout sélectionner
GetEnvironmentVariable("PB_TOOL_Scintilla")
La doc indique pourquoi ça ne marche pas dans ce cas là.
https://www.purebasic.com/french/docume ... tools.html
« Notez que celles qui donnent des informations sur le fichier en cours d'édition ne sont pas accessibles pour les outils exécutés au démarrage ou à la fermeture de l'IDE. »
Re: Récupérer le texte de l'onglet actif de l'éditeur PB...
Désolé
Comment faire pour copier le texte dans l’éditeur de PB vers une variable ?
Merci !;-=============================================================================
; Project ...... : Editor Helper
; Name ......... : EditorHelper.pb
; Type ......... : Main Code
; Author ....... : falsam
; CreateDate ... : 03, October 2017
; Compiler ..... : PureBasic V5.60 (x86)
; Flags ........ : None
; Subsystem .... : none
; TargetOS ..... : Windows
; License ...... :
; Link ......... :
; Description .. : IDE TOOLS - Automatically generates the end keyword of a keyword.
;==============================================================================
Comment faire pour copier le texte dans l’éditeur de PB vers une variable ?
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Récupérer le texte de l'onglet actif de l'éditeur PB...
Un peu de lecture :
L'IDE fournit des informations supplémentaires pour les outils sous la forme de variables d'environnement. Elles peuvent être facilement lues par l'outil à l'aide des commandes de la bibliothèque Process.
Voici une liste des variables fournies. Notez que celles qui donnent des informations sur le fichier en cours d'édition ne sont pas accessibles pour les outils exécutés au démarrage ou à la fermeture de l'IDE.
PB_TOOL_IDE - Chemin complet et nom de l'exécutable de l'IDE
PB_TOOL_Compiler - Chemin complet et nom de l'exécutable du compilateur
PB_TOOL_Preferences - Chemin complet et nom du fichier des préférences de l'IDE
PB_TOOL_Project - Chemin complet et le nom du projet actuellement ouvert (le cas échéant)
PB_TOOL_Language - Langue actuellement utilisée dans l'IDE
PB_TOOL_FileList - Liste de tous les fichiers ouverts dans l'IDE, séparés par un Chr(10)
PB_TOOL_Debugger - Ces variables fournissent les paramètres correspondant à ceux de la fenêtre d'options de compilation
PB_TOOL_InlineASM pour le source en cours. Elles sont à 1 si l'option
PB_TOOL_Unicode est activée, à 0 sinon.
PB_TOOL_Thread
PB_TOOL_XPSkin
PB_TOOL_OnError
PB_TOOL_SubSystem - Contenu du champ Bibliothèque Sous-système dans les options de compilation
PB_TOOL_Executable - Identique au mot-clef %COMPILEFILE pour la ligne de commande
PB_TOOL_Cursor - Identique au mot-clef %CURSOR pour la ligne de commande
PB_TOOL_Selection - Identique au mot-clef %SELECTION pour la ligne de commande
PB_TOOL_Word - Identique au mot-clef %WORD pour la ligne de commande
PB_TOOL_MainWindow - Identifiant système (Handle) de la fenêtre principale de l'IDE
PB_TOOL_Scintilla - Identifiant système (Handle) du composant d'édition de code Scintilla pour le source en cours
Important : Ton utilitaire doit etre lancer en temps qu'outil de ton IDE pour que ça fonctionne
L'IDE fournit des informations supplémentaires pour les outils sous la forme de variables d'environnement. Elles peuvent être facilement lues par l'outil à l'aide des commandes de la bibliothèque Process.
Voici une liste des variables fournies. Notez que celles qui donnent des informations sur le fichier en cours d'édition ne sont pas accessibles pour les outils exécutés au démarrage ou à la fermeture de l'IDE.
PB_TOOL_IDE - Chemin complet et nom de l'exécutable de l'IDE
PB_TOOL_Compiler - Chemin complet et nom de l'exécutable du compilateur
PB_TOOL_Preferences - Chemin complet et nom du fichier des préférences de l'IDE
PB_TOOL_Project - Chemin complet et le nom du projet actuellement ouvert (le cas échéant)
PB_TOOL_Language - Langue actuellement utilisée dans l'IDE
PB_TOOL_FileList - Liste de tous les fichiers ouverts dans l'IDE, séparés par un Chr(10)
PB_TOOL_Debugger - Ces variables fournissent les paramètres correspondant à ceux de la fenêtre d'options de compilation
PB_TOOL_InlineASM pour le source en cours. Elles sont à 1 si l'option
PB_TOOL_Unicode est activée, à 0 sinon.
PB_TOOL_Thread
PB_TOOL_XPSkin
PB_TOOL_OnError
PB_TOOL_SubSystem - Contenu du champ Bibliothèque Sous-système dans les options de compilation
PB_TOOL_Executable - Identique au mot-clef %COMPILEFILE pour la ligne de commande
PB_TOOL_Cursor - Identique au mot-clef %CURSOR pour la ligne de commande
PB_TOOL_Selection - Identique au mot-clef %SELECTION pour la ligne de commande
PB_TOOL_Word - Identique au mot-clef %WORD pour la ligne de commande
PB_TOOL_MainWindow - Identifiant système (Handle) de la fenêtre principale de l'IDE
PB_TOOL_Scintilla - Identifiant système (Handle) du composant d'édition de code Scintilla pour le source en cours
Important : Ton utilitaire doit etre lancer en temps qu'outil de ton IDE pour que ça fonctionne
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Récupérer le texte de l'onglet actif de l'éditeur PB...
Ce petit code va te donner une approche de ce que tu demandes.
L'objectif est d'afficher dans un MessageRequester() le contenu d'une sélection partiel ou totale d'un code de la fenêtre active de ton IDE.
1 - Crées un exécutable que tu appelleras test ou ce que tu veux
2 - Installes maintenant test.exe dans les outils de l'IDE
Pour cela tu cliques sur le menu Outils puis Outils personnalisés .
Cliques sur le bouton Nouveau.
Entres les paramètres comme le montre cette image puis cliques sur le bouton Ok.
3 - Tu peux tester ce formidable outil en sélectionnant une partie de ton code puis Menu Outils -> Test
L'objectif est d'afficher dans un MessageRequester() le contenu d'une sélection partiel ou totale d'un code de la fenêtre active de ton IDE.
Code : Tout sélectionner
;IMPORTANT TON UTILITAIRE DOIT ETRE LANCER EN TEMPS QUE OUTIL DE L'IDE
Define Buffer.s
HandleIDESci = Val(GetEnvironmentVariable("PB_TOOL_Scintilla"))
If HandleIDESci
SetClipboardText("")
SendMessage_(HandleIDESci, #WM_COPY, 0, 0)
Buffer = GetClipboardText()
MessageRequester("Contenu", buffer)
EndIf
2 - Installes maintenant test.exe dans les outils de l'IDE
Pour cela tu cliques sur le menu Outils puis Outils personnalisés .
Cliques sur le bouton Nouveau.
Entres les paramètres comme le montre cette image puis cliques sur le bouton Ok.
3 - Tu peux tester ce formidable outil en sélectionnant une partie de ton code puis Menu Outils -> Test
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Récupérer le texte de l'onglet actif de l'éditeur PB...
@Falsam, t'es top, merci infiniment de ton aide !
Par contre j'aurais voulus autre chose qu'une sélection...
Je ne veux pas sélectionné un texte dans l'id pour l'avoir, je voudrais le récupérer dès qu'il y à une modification...
Merci encore.
Par contre j'aurais voulus autre chose qu'une sélection...
Je ne veux pas sélectionné un texte dans l'id pour l'avoir, je voudrais le récupérer dès qu'il y à une modification...
Merci encore.
Processeur: Intel Core I7-4790 - 4 Cœurs - 8 Thread: 3.60 Ghz.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
Ram: 32 GB.
Disque: C: SDD 250 GB, D: 3 TB.
Vidéo: NVIDIA GeForce GTX 960: 2 GB DDR5.
Écran: Asus VX248 24 Pouces: 1920 x 1080.
Système: Windows 7 64 Bits.
PureBasic: 5.60 x64 Bits.
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Récupérer le texte de l'onglet actif de l'éditeur PB...
C'est l'utilisateur qui appelle ton outil. L'outil ne sera pas capable de faire ce que tu souhaites.je voudrais le récupérer dès qu'il y à une modification...
Je te propose un autre code similaire au précédent. La différence est que l'utilisateur n'a pas besoin de faire une sélection.
Tout le code est sélectionné et copier dans une variable quand l'utilisateur lance l'outil.
Code : Tout sélectionner
;IMPORTANT TON UTILITAIRE DOIT ETRE LANCER EN TEMPS QUE OUTIL DE L'IDE
Define Buffer.s
HandleIDESci = Val(GetEnvironmentVariable("PB_TOOL_Scintilla"))
If HandleIDESci
SetClipboardText("")
; Sélectionner le code
SendMessage_(HandleIDESci, #EM_SETSEL, 0, -1)
; Copier la sélection en mémoire
SendMessage_(HandleIDESci, #WM_COPY, 0, 0)
; Annuler la sélection
SendMessage_(HandleIDESci, #EM_SETSEL, 0, 0)
Buffer = GetClipboardText()
MessageRequester("Contenu", Buffer)
EndIf
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
- falsam
- Messages : 7244
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Récupérer le texte de l'onglet actif de l'éditeur PB...
Ooops j'ai dit une bêtise. Un outil de l'IDE peut être lancer sur événement dont liste ci dessous.
L’événement que tu souhaites (Modification du code) n'est pas pris en compte. par contre ton outil peut se déclencher si l'utilisateur enregistre le code.
Lien : https://www.purebasic.com/french/docume ... tools.html
L’événement que tu souhaites (Modification du code) n'est pas pris en compte. par contre ton outil peut se déclencher si l'utilisateur enregistre le code.
Lien : https://www.purebasic.com/french/docume ... tools.html
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%