Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Remap colon key: HELP !!!



  • Please log in to reply
18 replies to this topic
Uchronie
  • Members
  • 7 posts
  • Last active: Nov 21 2013 07:54 AM
  • Joined: 18 Nov 2013

Hi !

I'm a new user of Autohotkey and have a stupid problem/

I've understood how to remap keys. For example a::n will remap "a" into "n"

 

My problem is: HOW DO I REMAP ":" into "n", since ":" is a command key ???

I mean:

:::n

does not work !

 

Can you help please ?

 

I spent the whole day looking through forums and tutorials and can't find a clue !!!

 

Thanks for what you guys can do for me !

 

Franck

 



Temil2008
  • Members
  • 364 posts
  • Last active: Jun 14 2015 09:02 PM
  • Joined: 10 Dec 2012
Hotkey, :, ColonDetected
return

ColonDetected:
Send, n

________________________________________________________________

Did a solution provided fix your issue? please mark as "Answered" if so. thank you!


MindCaged
  • Members
  • 191 posts
  • Last active: Jul 22 2014 06:17 PM
  • Joined: 26 Aug 2012

Err, there's also just this:

`;::n

The ` is the escape character. BTW, its the one on the ~ key, not the single quote on the " key.

 

Edit: Err, you mean the colon key, not the semicolon, which is weird because on my keyboard that's a shifted key. So yeah, maybe use the above.



Uchronie
  • Members
  • 7 posts
  • Last active: Nov 21 2013 07:54 AM
  • Joined: 18 Nov 2013

Hi,

Thank you very much for your answers. I'm almost there !

First of all, Mindcaged, let me explain: I'm French and working on a French keyboard, which is AZERTY and not QWERTY. SO the colon key is not a shifted one.

That's why !

 

Now, Temil, to my remaining problem: what I'm trying to do is fix a problem of the Logitech remote control on Powerpoint: it sends a ":" key whith one of its buttons, when in the French version of Powerpoint a "n" key is needed to get the wanted effect (black screen).

 

1) When I use it alone, like below, your script works for Powerpoint but is active everywhere else (Word,...)

 

{
 Hotkey, :, ColonDetected
return
 
ColonDetected:
Send, n
return
}
 

2) BUT When I try to make it active only in Powerpoint Diaporama, with the script below, it doesnt' work anymore.

 

SetTitleMatchMode 2
#IfWinActive, Diaporama PowerPoint
{
 Hotkey, :, ColonDetected
return
 
ColonDetected:
Send, n
return
}
#IfWinActive, Microsoft PowerPoint
{
 F5::+F5
}
 
Can you tell me what I do wrong ?...
 
Franck


Masonjar13
  • Members
  • 1517 posts
  • Last active:
  • Joined: 16 Sep 2012

Let's make this much easier, using MindCaged's example.

SetTitleMatchMode, 2
#IfWinActive Diaporama Powerpoint
`:::n

 

IfWinActive does not have brackets.


OS: Windows 7 Ultimate / Windows 8.1 Pro | Editor: Notepad++


MindCaged
  • Members
  • 191 posts
  • Last active: Jul 22 2014 06:17 PM
  • Joined: 26 Aug 2012

I'm not actually sure if the ` works on the colon key, I don't have your keyboard so I can't be sure.

 

Something that you might have better luck with, you could try using the scan code for the colon key. If you get the scan code for the colon key, you can use that for the hotkey. For example, my keyboard the scancode for the semicolon key is 027, since you have a different keyboard layout, you'll need to find the keycode for your key. Anyway for the semicolon key on my keyboard the following would work.

sc027::MsgBox, You hit semicolon.

If you have a script with the keyboard hook installed you can open the main window from the tray icon, and hit the key, then hit Ctrl-K to list recent key presses, and it'll also show the virtual key code and the scan code. The scan code is dependent on the keyboard.



Masonjar13
  • Members
  • 1517 posts
  • Last active:
  • Joined: 16 Sep 2012

I'm not actually sure if the ` works on the colon key, I don't have your keyboard so I can't be sure.

You're right, the script doesn't accept this. You're also right that the scan code would be the best way to do this.


OS: Windows 7 Ultimate / Windows 8.1 Pro | Editor: Notepad++


Uchronie
  • Members
  • 7 posts
  • Last active: Nov 21 2013 07:54 AM
  • Joined: 18 Nov 2013

Hi again !

I found a solution... even if I don't really understand what happens !!!

 

As explained earlier, Mindcaged, your script worked well when used alone, but didn't with the "#IfWinActive, Diaporama PowerPoint" condition.

So I tried to test my condition with a simple, basic script just to check:

 

#IfWinActive, Diaporama PowerPoint

a::b

 

This worked well. So I tried to add this one at the end of the previous script, just to check if it still worked:

 

SetTitleMatchMode 2

#IfWinActive, Diaporama PowerPoint
{
 Hotkey, :, ColonDetected
return
 
ColonDetected:
Send, n
return
}
#IfWinActive, Microsoft PowerPoint
{
 F5::+F5
}
#IfWinActive, Diaporama PowerPoint
{
 a::b
}
 
Guess what ? In Powerpoint Diaporama, the "a" key works (= creates a white screen, which is what happens when you hit "b" on the French version of Powerpoint), but suddenly the first part of the script (":" remaped into "n") starts to work also, and so the button of the Logitech remote control works !!!
Just because I added the 3rd "ghost" function at the end of the script, remaping "a" to "b" in the same #IfWinActive, Diaporama PowerPoint condition !!!
 
Weird, isn't it ??? Do you understand what happened ?
 
Well, I will keep the ghost function and associate it with a key rarely used in France (e.g. "$" instead of "a"). Not really clean... but operational !! 
 
Anyway, thank you very much again for your time, it really helped !!


Temil2008
  • Members
  • 364 posts
  • Last active: Jun 14 2015 09:02 PM
  • Joined: 10 Dec 2012

Let's make this much easier, using MindCaged's example.

SetTitleMatchMode, 2
#IfWinActive Diaporama Powerpoint
`:::n

IfWinActive does not have brackets.

 

that doesn't work, and returns the error " "This line does not contain a recognized action. Specifically: :n "  reason? because you can't have the first char as a Tild key followed by the Colon, it still thinks it's code and doesn't read it as a hotkey.

 

 

Hi again !

I found a solution... even if I don't really understand what happens !!!

 

As explained earlier, Mindcaged, your script worked well when used alone, but didn't with the "#IfWinActive, Diaporama PowerPoint" condition.

So I tried to test my condition with a simple, basic script just to check:

 

#IfWinActive, Diaporama PowerPoint

a::b

 

This worked well. So I tried to add this one at the end of the previous script, just to check if it still worked:

 

SetTitleMatchMode 2

#IfWinActive, Diaporama PowerPoint
{
 Hotkey, :, ColonDetected
return
 
ColonDetected:
Send, n
return
}
#IfWinActive, Microsoft PowerPoint
{
 F5::+F5
}
#IfWinActive, Diaporama PowerPoint
{
 a::b
}
 
Guess what ? In Powerpoint Diaporama, the "a" key works (= creates a white screen, which is what happens when you hit "b" on the French version of Powerpoint), but suddenly the first part of the script (":" remaped into "n") starts to work also, and so the button of the Logitech remote control works !!!
Just because I added the 3rd "ghost" function at the end of the script, remaping "a" to "b" in the same #IfWinActive, Diaporama PowerPoint condition !!!
 
Weird, isn't it ??? Do you understand what happened ?
 
Well, I will keep the ghost function and associate it with a key rarely used in France (e.g. "$" instead of "a"). Not really clean... but operational !! 
 
Anyway, thank you very much again for your time, it really helped !!

 

 

even though this may work for you, it has some bugs in it. I'm heading into work, give me a few hours and when I have a min at work, I'll rewite it to work for ya now that we have more info to go on.


________________________________________________________________

Did a solution provided fix your issue? please mark as "Answered" if so. thank you!


MindCaged
  • Members
  • 191 posts
  • Last active: Jul 22 2014 06:17 PM
  • Joined: 26 Aug 2012

Well, first of all, you're using #IfWinActive wrong. You can't use it with the HotKey command like that. #IfWinActive is a directive, it only effects Key::Action hotkey(and hotstring) definitions, and is handled even before the script runs, I've noticed for some reason a lot of people have this confusion in that they think the #directives are commands, which I can somewhat understand. Anyway, to use Hotkey to define an application specific hotkey you use this:

; Make future Hotkey commands refer to a specific window.
Hotkey, IfWinActive, Window Title
; Define the hotkey commands
Hotkey, :, ColonDetectedProg1



; Later in the script where it won't be triggered on script run.
ColonDetectedProg1:
	; Do stuff
return

Those hotkey commands have to be run at the beginning of the script in the auto-execute section, because if they don't get run when the script first starts you won't be able to use them unless you have something else trigger them to run. The actual label though needs to be outside of the auto-execute section, which is after the first hotkey/hotstring, or after the return command is executed by the script.



Uchronie
  • Members
  • 7 posts
  • Last active: Nov 21 2013 07:54 AM
  • Joined: 18 Nov 2013

Hi again !

I managed to make it work for the 1st of my 2 functions (remap colon into n) :

Hotkey, IfWinActive, Diaporama PowerPoint

Hotkey, :, ColonDetectedProg1

ColonDetectedProg1:

Send, n

Return

But when it comes to the second function (remap F5 into +F5 in Powerpoint basic mode, in order to start Diaporama from where it stopped), 2 problems occur:

  1. The name of the window seems to be an absolute name, e.g. “TEST – Microsoft PowerPoint” if your PPT file name is TEST. So I don’t find a solution to put it in the script (I mean, Hotkey, “IfWinActive, TEST - Microsoft PowerPoint “ will work only for this particular file)
  2. Even with this particular TEST file (given I couldn’t manage to make the name of the window more tolerant to a generic ***- Microsoft PowerPoint name), it seems to work for a classic key remaping (e.g. “a “ into “b”: 

 

Hotkey, a, aDetectedProg1
aDetectedProg1:
Send, b
Return
 
… but doesn’t on a “F5” into “+F5” remaping:
Hotkey, F5, F5DetectedProg1
F5DetectedProg1:
Send, +F5
Return

 

Well, as I said, I’m a real beginner on Autohotkey so I probably do stupid script things…

 

If you’re despaired I’ll understand, no worry, I’ll go for a dirty version ! If you’re more patient, can you please tell me how to write it on an appropriate manner ?

 

Franck



MindCaged
  • Members
  • 191 posts
  • Last active: Jul 22 2014 06:17 PM
  • Joined: 26 Aug 2012

Err, for F5 you could just use an #IfWinActive section and define those with the regular F5::Send, +{F5}



Uchronie
  • Members
  • 7 posts
  • Last active: Nov 21 2013 07:54 AM
  • Joined: 18 Nov 2013
✓  Best Answer

Mindcaged, you're my new favorite superhero !!!

 

This script works perfectly:

 

SetTitleMatchMode 2
 
Hotkey, IfWinActive, Diaporama PowerPoint
Hotkey, :, ColonDetectedProg1
 
 
ColonDetectedProg1:
Send, n
return
 
#IfWinActive, Microsoft PowerPoint
{
F5::Send, +{F5}
}
 
 
Thank you VERY much for your help & patience.
 
TEMIL, thank you also for your help and time on this !
 
Franck


Uchronie
  • Members
  • 7 posts
  • Last active: Nov 21 2013 07:54 AM
  • Joined: 18 Nov 2013

A last (long) word of me: since this forum is in English and most users having the problem I encountered will be French, I thought it might be of interest to set up a small "tutorial" for beginners, in French. People like Mindcaged, Temil and Masonjar took time to help me, this is why forums are great, so now it's my turn to try to help others !

So, next post in French !



Uchronie
  • Members
  • 7 posts
  • Last active: Nov 21 2013 07:54 AM
  • Joined: 18 Nov 2013

Bonjour,

 

Un des trucs formidables sur Internet, c’est l’entraide que les gens, sans se connaitre, sont capables de s’apporter sur les forums. Alors après 2 journées de galères et après avoir reçu l’aide précieuse de plusieurs membres de ce forum anglophone, il ne me parait pas inutile de mettre sur pied ce mini « tutoriel » en français pour les utilisateurs francophones qui rencontreront le même problème que moi ! J’ai reçu un coup de patte, à moi d’en filer un !

 

L’enjeu est le suivant :

Faire fonctionner la touche écran noir sous Powerpoint sur la télécommande Logitech R400,  pour les utilisateurs français !

 

En effet, bien que totalement conscient du problème, Logitech oublie, dans un grand élan de transparence, de signaler sur sa page de promotion de sa télécommande R400 (par ailleurs très bon produit), que cette dernière NE FONCTIONNE PAS CORRECTEMENT avec Powerpoint si vous utilisez la version française de MS OFFICE !! Juste un petit détail quoi !

 

Concrètement, 2 choses ne fonctionnent pas :

 

-          D’une part, la touche « écran noir » ne produit aucun effet.

-          D’autre part, la touche « play » qui lance le diaporama fonctionne de façon un peu bourrine : elle lance le diaporama systématiquement à la première diapo. Supposons que vous avez un diaporama de 2 heures sur 150 diapos, et qu’arrivé à la 90ème diapo vous appuyez malencontreusement sur Escape, ce qui interrompt le diaporama (ce genre d’accident débile nous est tous arrivé, non ?). Eh bien en voulant relancer le diaporama avec la télécommande, vous recommencez d’office à la première diapo… et vous allez avoir quelques sueurs froides le long du dos en faisant défiler frénétiquement vos 90 premières diapos à toute vitesse pour revenir là où vous étiez, le tout dans le silence gêné de vos interlocuteurs !! Bref , ça fait super pro ! Donc, objectif : faire en sorte que le bouton play de la télécommande relance le diaporama sur la dernière diapo où il s’était arrêté !

 

Si vous appelez la Hotline de Logitech, en vous répondra d’un ton détaché qu’il n’y a pas de solution et que le mieux est d’essayer de vous faire rembourser le produit par votre revendeur. Passe à ton voisin-zin-zin !

 

En fait il y a une solution, en installant un logiciel malin et gratuit qui s’appelle AutoHotkey, et que vous pouvez télécharger ici :

http://www.autohotkey.com/

 

Que fait AutoHotkey ? Il permet d’associer, durablement ou temporairement, une touche ou une série de touches de votre clavier au lancement d’une série d’instructions. Bref, un raccourci un peu comme les touches des constructeurs pour lancer le Web ou autre.

 

A un niveau d’usage assez simple, AutoHotkey permet aussi de remplacer une touche par une autre. Par exemple je demande à l’ordi de comprendre « b » à chaque fois que j’appuie sur « a ». Et c’est là que ça devient intéressant pour nous !

 

Parce que si la télécommande Logitech ne marche pas, c’est tout simplement parce que nos amis de chez Logitech, en bons américains, n’ont simplement pas pris en compte le fait que les touches de raccourci de Powerpoint ne fonctionnent pas pareil en anglais et en français. Par exemple : pour obtenir un écran noir pendant un diaporama, aux USA il faut appuyer sur « B » (black) ou sur « . », et en France sur «N » (noir) ou sur « . »… sauf que le « . », pour tout simplifier, n’est pas au même endroit sur un clavier QWERTY et AZERTY. Et en plus les souris anglaises roulent à gauche (non, là je déconne).

 

Or quand on appuie sur le bouton « écran noir », la télécommande Logitech envoie de façon assez bourrine le signal de la touche US « . » à l’ordi. Sauf qu’avec un clavier QWERTY celui-ci reçoit « : », ce qui ne correspond à aucun raccourci Powerpoint en mode diaporama. Très logiquement, il ne se passe donc… rien !

 

AutoHokey va nous permettre de régler cela en demandant à l’ordi d’interpréter les ordres reçus depuis la télécommande en des touches différentes, qui correspondent aux raccourcis Powerpoint français.

 

Signalons à ce stade qu’il y a des scripts AutoHotkey qui trainent sur le forum de Logitech, déposés par des utilisateurs, pour faire cela. Sauf qu’ils ne marchent qu’avec une version française de Powerpoint ET un clavier QWERTY. Avec le clavier francophone AZERTY, cela ne marche pas car les scripts en question se content de remplacer « . » par « SHIFT . ». Or sur le clavier AZERTY, l’ordre que l’ordi reçoit de la télécommande n’est pas « . » mais … « : ».

 

Facile, me direz-vous, il suffit de remplacer « . » par « : » dans le script. Sauf que !!!! Parce que dans le langage d’AutoHotkey, « : » correspond  à une instruction… et ce n’est donc PAS DU TOUT un caractère anodin ! Donc il faut ruser un peu. Voici donc la solution, après avoir bien galéré et avoir été dépanné par des types franchement sympas de ce forum. Merci au passage à Temil, Masonjar et Mindcaged !

 

Voici ce que vous devez faire :

 

1)      Téléchargez AutoHotkey et installez-le sur votre ordi.

2)      Une fois celui-ci installé, ouvrez le bloc-notes Windows et collez-y le script suivant :

 

SetTitleMatchMode 2

 Hotkey, IfWinActive, Diaporama PowerPoint

Hotkey, :, ColonDetectedProg1

 

 ColonDetectedProg1:

Send, n

return

 

#IfWinActive, Microsoft PowerPoint

{

F5::Send, +{F5}

}

 

Pour expliciter un peu les choses, on demande ici à AutopHotkey de remplacer « : » par « n » (pour faire marcher le bouton écran noir) et de remplacer F5 par SHIFT-F5 (pour que le diaporama reprenne à la dernière diapo affichée lors de l’appui sur la touche « play »).

 

… le tout, uniquement quand Powerpoint est utilisé en mode diaporama (pour le bouton noir) et en mode normal (pour le bouton play). Ben oui, c’est un peu agaçant de taper « : » sous Word et de voir apparaitre « n » !!!!!

 

De toute façon pas d’inquiétude,  rien n’est irréversible, il suffit d’arrêter à tout moment le programme AutoHotkey dans la barre de tâches pour que tout redevienne comme avant !

 

3)      Une fois que vous avez copié le script dans le bloc-notes, enregistrez (là où vous voulez !) ce fichier sous « Hotkey_PPT_Logitech. ahk » (l’extension ahk permet à AutoHotkey de reconnaitre un script qui lui est destiné).

4)      Faites un clic droit sur le fichier Hotkey_PPT_Logitech. ahk et choisissez « Compile Script » : un programme Hotkey_PPT_Logitech. exe va être créé. C’est la version exécutable du script précédent.

5)      Là, 2 solutions s’offrent à vous :

a.       Soit vous le lancez à volonté en double-cliquant dessus avant de présenter un diaporama Powerpoint. Il restera actif jusqu’à extinction de l’ordi, et vous pouvez le couper avant en le stoppant via la barre de tâches.

b.      Soit vous le placez  dans votre dossier Démarrer de Windows et il se lancera à chaque démarrage, prêt à remplir ses bons offices à chaque diaporama !

 

Ouf ! Le bouton noir et le bouton play de ma jolie télécommande Logitech R400 marchent enfin sous Powerpoint en français !!!

 

En espérant que ce petit tutoriel fera gagner du temps à d’autres utilisateurs, y compris novices !

 

Franck