Sign in to follow this  
Followers 0
power1power1

Temporarily map a key to another

10 posts in this topic

The question that I have is what do you suggest to temporarily map a key to another?

I want to temporarily map say M key to N key. I used  _IsPressed() to see if M is pressed and then send N key. The issue was the N key would have been sent when M key was pressed and Windows didn't like that. So I added another _IsPressed() to check and send N key after M key was released. This resolved the issue with Windows. Now the problem is it doesn't feel well that the N key is sent on releasing M key rather than pressing M key.

Share this post


Link to post
Share on other sites



HotKeySet("M", "M")

Func M()
    HotKeySet("M", "")
    Send("N")
    HotKeySet("M", "M")
EndFunc

Share this post


Link to post
Share on other sites

Hi 0xdefea7. Thanks for the script. I tested it and it works OK. I also noticed I won't be able to map Ctrl to another key. Is there any work around you might know of?

Share this post


Link to post
Share on other sites

Why would you like to do this?


_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 04/09/2015

Share this post


Link to post
Share on other sites

Well, there are two Ctrl keys on the keyboard and I wanted to make use of one of them as a new key.

Share this post


Link to post
Share on other sites

In the help file for HotKeySet() - it clearly states that you cannot set Ctrl key (by itself), as it itself is a modifier. That said, you will have to look into other methods (e.g. hooking the dll) to get what you want. 

Share this post


Link to post
Share on other sites

Can you elaborate on "hooking the dll" method?

Share this post


Link to post
Share on other sites

OK, thanks a lot.

Share this post


Link to post
Share on other sites

For those who follow this question: I ended up updating the ExitNow() function as follows:

Func ExitNow()
   HotKeySet("{F3}")
   Send("{F3}")
   Exit
EndFunc

And I added the following line to the script:

OnAutoItExitRegister("OnAutoItExit")

Well, there is a Sleep(10) which I changed it to Sleep(100) as well.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0