SCRIPT - Raccourci

Wolf_51

Membre actif
14 Mars 2016
136
8
49
Bonjour à tous.

Je suis complètement novice et je ne sais pas si c'est réalisable, mais voici ce que j'aimerais faire :

J'utilise au quotidien dans mon activité professionnelle des raccourcis clavier (depuis un iMac) qui communiquent à mes coursiers les adresses de nos clients sur leurs mobiles (via iMessage) sous forme de "Remplacement de texte"

Exemple :
  • Mon racourci : CLI*
  • Le résultat :

CLIENT
ADRESSE
CP VILLE


TEL.
INFO

Il y a 2 lignes d'espace entre "ville" et "tel" pour le format papier des factures que j'envoies également aux clients.
Ces 2 lignes j'aimerais les supprimer via une automatisation lors de mes envoies par message.
Je cherche donc un "script" ou une "automatisation" (je ne sais pas quel est le terme exact) qui me permettrait une fois mon raccourci affiché d'exécuter les actions suivantes :

1 - remonter le curseur de 2 lignes (flèche haut)
2 - appuyer 2 fois sur la touch Suppr (pour supprimer les 2 lignes)
3 - descendre le curseur de 4 lignes (flèche bas)

Est-ce réalisable ?
Merci
 
Bonjour
Pourquoi ne pas faire un deuxième raccourci / remplacement de texte spécifique pour ces autres lignes (ou alors je n’ai pas compris le problème)?
 
Parce que j'ai fais ça au fil du temps pour tous mes clients sur ce même format.
J'ai donc prêt de 300 raccourcis.
 
Ok, un raccourci par client, donc, avec je suppose un numéro à la place de l’asterisque.
As-tu essayé simplement avec Automator ? Ça enregistre assez simplement les séquences de touches telles que tu les voudrais
 
J'avais jeté un oeil, mais il me semble que c'est spécifique à des Applications ?

Je n'ai pas trouvé comment généraliser ça à l'ensemble des racourcis du Mac
J'aimerais l'appliquer de manière générale, car j'utilise mes raccourcis sur les mails, iMessage, WhatsApp, numbers, page entre autre ..
 
Ok, d’après ton premier post, je pensais que ça se limitait à la messagerie. Du coup je pense que c’est effectivement un script AppleScript qu’il te faut, mais je ne maîtrise pas…
 
Parce que j'ai fait ça au fil du temps pour tous mes clients sur ce même format.
J'ai donc près de 300 raccourcis.
En relisant calmement après une nuit de sommeil, je réalise seulement ce que tu expliquais pourtant bien :
Tu utilises simplement la fonction de remplacement de texte dans les préférences système > Clavier.

De là, je me suis dit qu'en trouvant où ces données étaient enregistrées, tu pourrais peut-être directement les modifier.
Hélas, le seul dossier que j'ai trouvé qui semble correspondre contient des fichiers qui ne sont guère lisibles et à mon idée pas modifiables.
• /Users/~/Library/KeyboardServices/TextReplacements.db
Bref, un coup dans l'eau sans doute mais qui sait ? Ça pourrait donner une idée à quelqu'un ?
 
En relisant calmement après une nuit de sommeil, je réalise seulement ce que tu expliquais pourtant bien :
Tu utilises simplement la fonction de remplacement de texte dans les préférences système > Clavier.

De là, je me suis dit qu'en trouvant où ces données étaient enregistrées, tu pourrais peut-être directement les modifier.
Hélas, le seul dossier que j'ai trouvé qui semble correspondre contient des fichiers qui ne sont guère lisibles et à mon idée pas modifiables.
• /Users/~/Library/KeyboardServices/TextReplacements.db
Bref, un coup dans l'eau sans doute mais qui sait ? Ça pourrait donner une idée à quelqu'un ?
Si c'est possible de voir et modifier le contenu avec DB Browser for SQLite.
Capture d’écran 2023-02-10 à 10.54.41.png
 
  • J’aime
Réactions: baron
En relisant calmement après une nuit de sommeil, je réalise seulement ce que tu expliquais pourtant bien :
Tu utilises simplement la fonction de remplacement de texte dans les préférences système > Clavier.

De là, je me suis dit qu'en trouvant où ces données étaient enregistrées, tu pourrais peut-être directement les modifier.
Hélas, le seul dossier que j'ai trouvé qui semble correspondre contient des fichiers qui ne sont guère lisibles et à mon idée pas modifiables.
• /Users/~/Library/KeyboardServices/TextReplacements.db
Bref, un coup dans l'eau sans doute mais qui sait ? Ça pourrait donner une idée à quelqu'un ?
Moi je comprends qu’il ne veut pas modifier ses raccourcis clavier, qui lui fournissent les coordonnées des clients suivant une présentation adaptée à l’édition de ses factures, mais que quand il colle ce raccourci dans un message à destination d’un de ses coursiers, un script, à lancer manuellement je suppose, fasse simplement disparaître les deux lignes vides et remette le curseur à la fin, d’où ma proposition d’Automator, sauf qu’il utilise plusieurs applications de messagerie et qu’Automator ne se lancerait que sur une application donnée.
 
  • J’aime
Réactions: baron
Bonjour,
Il faudrait tout faire à partir d'un script. Au lancement le script demande :
1 - Demande de saisir le raccourci
2 - Demande saisir le Numéro de tel du coursier

Le script enverrait directement le contenu du raccourci en supprimant les lignes 4 et 5.

A voir si c'est ce que veut @Wolf_51 .
Et savoir comment il voudrait avoir accès a ce script: le lancer comme une application, ou l'avoir dans la barre de menu des scripts, ou ???
 
Moi je comprends qu’il ne veut pas modifier ses raccourcis clavier, qui lui fournissent les coordonnées des clients suivant une présentation adaptée à l’édition de ses factures, mais que quand il colle ce raccourci dans un message à destination d’un de ses coursiers, un script, à lancer manuellement je suppose, fasse simplement disparaître les deux lignes vides et remette le curseur à la fin, d’où ma proposition d’Automator, sauf qu’il utilise plusieurs applications de messagerie et qu’Automator ne se lancerait que sur une application donnée.
Oui, c'est exactement ce que je recherche et après y avoir réfléchi si ça ne fonctionne que via iMessage ça me conviendrait, puisque je l'utilise la plupart du temps.

J'ai également regardé Automator, mais j'avoue ne pas y comprendre grand chose, même après avoir essayé de chercher des tutoriels. Mais ça parle de codage et de JavaScript ... et la pour le coup, je suis complètement perdu o_O

PS : Désolé de ne pas avoir répondu plus tôt, je n'avais pas vu les réponses (bizarre je devrais pourtant recevoir des notifications par mail pour les réponses normalement)
 
Dernière édition:
Bonjour,
Il faudrait tout faire à partir d'un script. Au lancement le script demande :
1 - Demande de saisir le raccourci
2 - Demande saisir le Numéro de tel du coursier

Le script enverrait directement le contenu du raccourci en supprimant les lignes 4 et 5.

A voir si c'est ce que veut @Wolf_51 .
Et savoir comment il voudrait avoir accès a ce script: le lancer comme une application, ou l'avoir dans la barre de menu des scripts, ou ???
Oui un lancement via une touche raccourci me conviendrait parfaitement.

Par exemple dans iMessage je tape mon raccourci clavier CLI* : les coordonnées complètes de mon client apparaissent dans la barre de saisie de texte :
Capture d’écran 2023-02-11 à 17.05.20.png
Derrière, manuellement je déclenche le script avec command + R par exemple (j'ai cru comprendre que c'était le raccourci qui activait un script) qui effectue automatiquement les actions suivantes :

1 - remonter le curseur de 3 lignes (flèche haut)
2 - appuyer 2 fois sur la touch Suppr (pour supprimer les 2 lignes)
3 - descendre le curseur de 4 lignes (flèche bas)
ce qui donne ce résultat :

Capture d’écran 2023-02-11 à 17.05.31.png

Le script s'exécute et je n'ai plus qu'à valider l'envoi du message
 
Dernière édition:
Bonjour,

Je te propose de mettre en place ceci.

1 - Créer un fichier texte “Liste coursiers”, pour cela
  • Ouvrir l’application “TexEdit” vérifier que le document est bien au format TEXTE, (pas RTF) si besoin allez dans le menu Format—>Convertir au format texte.
  • Entrer les infos des coursiers destinataires des message avec le numéro de tel puis une virgule puis le nom. voir copie d’écran.
  • Enregistrer ce fichier dans le dossier “Documents” avec le nom “Liste coursiers” mettre ce nom exact car il est renseigné dans le script.
Capture d’écran 2023-02-12 à 07.53.14.png


2 - Créer l’application avec le script. pour cela.
  • Ouvrir l’application éditeur de script qui se trouve dans application—> utilitaires.
  • Clic sur “nouveau document” en bas à gauche
  • Faire un copier coller du script ci-dessous
  • Enregistrer ce script Nom au choix , exemple :“Envoi iMessage” ,emplacement au choix il pourra être déplacé ou tu voudras, Choisir —>Format de fichier—> Application.

Capture d’écran 2023-02-12 à 08.04.56.png

Pour utilisation:
Double clic sur cette nouvelle application “envoi iMessage”
Une fenêtre s’ouvre te demandant de choisir le coursier destinataire
Une autre fenêtre te demandant de choisir le client, tu entres ton raccourci, une mini indication se montre avec ton choix, là 2 possibilités, soit tu tapes un espace, soit tu clic sur cette mini indication. voir copie écran
Une fenêtre de récapitulatif s’ouvre tu donnant le message qui va être envoyé et le destinataire
Tu valides. le message s’envoi….

Si le message client n'est pas reconnu tu auras un fenêtre d'erreur.

Capture d’écran 2023-02-12 à 08.11.27.png


Dis moi si cela fonctionne…

Le script:
Bloc de code:
tell application "Finder"
    set fichiertel to (path to documents folder) as string
    set fichiertel to fichiertel & "Liste coursiers.txt"
    set fichiertel to fichiertel as alias
    open for access fichiertel
    set lestels to read fichiertel
    close access fichiertel
   
    set AppleScript's text item delimiters to ASCII character 10
    set nb to count text item of lestels
    set tels to {}
    repeat with i from 1 to nb
        set end of tels to text item i of lestels
    end repeat
    set choix to ""
    set coursier to ""
    set choix to (choose from list the tels with prompt "Sélectionner Le coursier : " with title "Choix") as string
    if choix is not "false" then
        set AppleScript's text item delimiters to ","
        set coursier to text item 1 of choix
        set nom to text item 2 of choix
    end if
end tell

if coursier is not "" then
    tell application "Finder"
        display dialog "Client ? terminer la saisie par un espace ou cliquer sur les infos !" default answer "client"
        set a to text returned of result
        try
            set nb to count paragraph of a
            set b to (paragraph 1 of a) & return & (paragraph 2 of a) & return & (paragraph 3 of a) & return & (paragraph 6 of a) & return & (paragraph 7 of a)
            display dialog "Message à envoyer" & return & return & b & return & return & "Au Tel : " & coursier & " de " & nom
           
            if b is not "" then
                tell application "Messages"
                    set targetbuddy to coursier
                    set imessageservice to 1st service whose service type = iMessage
                    set textMessage to b
                    set imessagebuddy to buddy targetbuddy of imessageservice
                    send textMessage to imessagebuddy
                end tell
                log "Message sent"
            end if
        on error
            display dialog "erreur saisie client"
        end try
    end tell
end if
 
Dernière édition:
Salut, merci pour ta réponse et ton script, mais si je comprends bien l'appli créée via le script va envoyer un iMessage à un coursier de manière automatique mais ne va pas modifier mon raccourci clavier déjà existant.

Du coup je n'arrive pas à capter ce que cette manip peut apporter comme solution à ma requête.
Puisque si je comprends bien elle ne va pas supprimer les 2 lignes d'espace ?

Je vais quand même tester pour voir ce que ça donne :)

Alors, j'ai créé un fichier texte avec les coordonnées, converti au Format Texte et placé le fichiers dans "Documents"
Ensuite via Editeur de Script, j'ai copié ton script, enregistré au Format "Application".

Lorsque je double clic sur l'appli, j'ai un message d'erreur :

Capture d’écran 2023-02-12 à 14.43.27.png
 
Dernière édition:
Effectivement mon script envoi directement le message avec le texte modifié (les 2 lignes supprimées !).

Par contre il ne touche pas à tes raccourcis, qui pourront donc être utilisés comme avant pour tes autres usages.

Le mieux est que tu testes !
Je n'ai pas précisé, mais lors de la première utilisation le mac de demandera d'autorisé cette application, il faut bien sur autoriser .

J'attends la réponse à tes essais !
 
Oups, je n'avais pas écrit correctement le nom du fichier .. je continue le test

Alors ... ça fonctionne :up:
MAIS ... une fois que mon code client est entré et prêt a être envoyer il faut que dessous je puisse rajouter manuellement les coordonnées du destinataire.
Aussi j'aimerais que soit rajouté un astérisque à la fin du nom de mon client (c'est pour signaler au coursier que c'est lui qui doit régler la course)

Exemple : (la partie en rouge est ce que je saisis manuellement)

CLIENT*
ADRESSE
CP VILLE
TEL
INFO

depot DESTINATAIRE
ADRESSE
CP VILLE
 
Dernière édition:
Nos posts ce sont croisés !
Ton erreur proviens du fait qu'il ne trouve pas le fichier "Liste coursiers" dans ton dossier document !

Vérifie
si c'est bien le bon nom (Liste coursiers) et s'il est bien dans ton dossier documents
 
Oui effectivement.
J'ai édité mon post du dessus.

Je rajoute à ce que j'écris plus haut une autre requête : Peut-on à la place de place le ficher text dans le dossier documents le mettre dans Finder / Textedit ?
 
Je ne comprends pas !
Les coordonnées du destinataire du message, c'est ton coursier tu l'a saisies ...
les coordonnées du client sont récupérées lorsque tu tapes ton raccourci.

Pas compris !

Mettre le fichier texte ou tu veux faut juste me donné le chemin que je le renseigne dans le script !
 
1 - le fichier Texte je veux le mettre dans le icloudDrive : TextEdit

Capture d’écran 2023-02-12 à 15.05.49.png

Pour l'envoi du message, une fois que mon code client est renseigné (ça ça fonctionne impec avec ton script)

Je rajoute en dessous manuellement les infos du destinataire :
mon client JEAN (qui est dans ma base de donnée et possède son raccourci) envoi un document à PIERRE (qui n'est pas dans ma base de données).
Je renseigne donc manuellement à la suite des coordonnées de mon client les infos du destinataire avant d'envoyer le message pour que mon coursier puisse disposer de toutes les infos relative à la course (adresse d'enlèvement et adresse de livraison)

Capture d’écran 2023-02-12 à 15.12.24.png
Voila ce que ça donne. avant que je valide.
Sachant qu'a partir de "dépôt" je dois faire de la saisie manuelle puisque ça change à chaque expédition.