; #Include Eval.ahk #NoEnv SendMode Input SetWorkingDir %A_ScriptDir% #SingleInstance Force SetBatchLines -1 Process Priority,,High MsgBox % "Eval(""100 + 22 - 55"") expresses to: " . Eval("100 + 22 - 55") MsgBox Next, the script waits for the hotkeys WIN+- and WIN+= (Win and minus key and Win and equal sign). Select any text to express and see the result. One key replaces and the other one append the result. ; Monster by Laszlo #-:: ; Replace selection or `expression with result #=:: ; Append result to selection or `expression ClipBoard = SendInput ^c ; copy selection ClipWait 0.5 If (ErrorLevel) { SendInput +{HOME}^c ; copy, keep selection to overwrite (^x for some apps) ClipWait 1 IfEqual ErrorLevel,1, Return If RegExMatch(ClipBoard, "(.*)(``)(.*)", y) SendInput % "{RAW}" y1 . (A_ThisHotKey="#=" ? y3 . " = " : "") . Eval(y3) } Else SendInput % "{RAW}" . (A_ThisHotKey="#=" ? ClipBoard . " = " : "") . Eval(ClipBoard) Return