I'm trying to use the AHK for sending some input when using Cisco AnyConnect.
SetTitleMatchMode, 2
CapsLock::
controlsend,,{enter}, Cisco AnyConnect | ; this line works
controlsend,,text{enter}, Cisco AnyConnect | ; this line does not work. I also try to send only text but it does not work either
Send, text{enter} ; this line works
Please help me.
Related
Few years ago a have write following script:
#IfWinActive ahk_class Photoshop
#Wheelup::
Send, {vkDD}
return
#IfWinActive ahk_class Photoshop
#WheelDown::
Send, {vkDB}
return
This script generate input '[' or ']' when I wheel mouse up or down while win-key is pressed. This script worked good, but now, when I have installed photoshop 2020, it's not working. I thought that ahk_class has been changed , but it's not the case. When I removed ifWinActive line, the script sent characters to the notepad, but not sent them to the photoshop. In addition, my other bingings, are not working while Photoshop is active too.
What should I do to solve this problem?
If Photoshop is running with admin privileges, then AHK won't intercept the key presses, and that could very well be the reason behind this problem.
If that is the case, try to run the AHK script as administrator by adding this to the auto-execute section (top of the script):
; If the script is not elevated, relaunch as administrator and kill current instance:
full_command_line := DllCall("GetCommandLine", "str")
if not (A_IsAdmin or RegExMatch(full_command_line, " /restart(?!\S)"))
{
try ; leads to having the script re-launching itself as administrator
{
if A_IsCompiled
Run *RunAs "%A_ScriptFullPath%" /restart
else
Run *RunAs "%A_AhkPath%" /restart "%A_ScriptFullPath%"
}
ExitApp
}
For more details read https://autohotkey.com/docs/commands/Run.htm#RunAs.
I'm looking for a AutoHotKey script the will copy a highlighted email attachment link into Windows Run Diag (Windows Key+R) and open the email. So far I have parts of what I want to work, but can't seem to get it all into one script to give the desired result.
These are my requirements and what I have so far to better understand my end goal:
Requirements:
1) Highlighted email attachment link from a browser
2) Ctrl+C -- to copy the email attachment link from a browser
3) Windows Key+R -- to open the Windows Run Diag
4) Ctrl+V -- Paste the email attachment link into the Windows Run Diag
5) Enter -- to open the email
AutoHotKey Script:
$F10::
Send, ^c ; This command alone copy the email attachment link
ClipWait
FileDlg := ComObjCreate("Shell.Application").FileRun, FileDlg := "" ; this command alone also open the Windows Run Diag
Send, ^c{ENTER}
return
Have you tried adding a delay after opening the Run dialog? Also you could replace the comobjcreate with #r if you didn't have it disabled.
$F10::
Send, ^c
ClipWait
Send, #r
Sleep 100
Send, ^v{ENTER}
return
I wrote a script that sends some keystroke to my command line. However, the values are coming out totally messed up. What could be the reasons?
BlockInput, on
WinGetActiveTitle, Title
DetectHiddenWindows, on
ControlClick, x660 y391, Notepad
ControlSend, , {Backspace}{Backspace}{Backspace}{Backspace}{Backspace}{Backspace}, Notepad
Sleep 30
ControlSend, , 2, Notepad
Sleep 30
ControlSend, , echo stat_id: 78 : SETTING PRICE TO 2 toactivate: %Title% >> logs.txt{Enter} , ahk_exe cmd.exe
ControlClick, x668 y640, Notepad
ControlSend, , echo ACTION NEXT (after SETTING PRICE) >> logs.txt{Enter} , ahk_exe cmd.exe
WinActivate, %Title%
Send {Ctrl down}+{Ctrl up}
Send {Ctrl down}+{Ctrl up}
Send {Ctrl down}+{Ctrl up}
Send {Ctrl down}+{Ctrl up}
Send {Ctrl down}+{Ctrl up}
BlockInput, off
ExitApp
Return
This is one example of output:
at-idec; ho78 B: EFSOETRTEI SNGCR PERENIC ESH TOOOT 2 DOTNOEAC >T>I valotges;. tixqt
echo ACTION NEXT (after SETTING PREICCEHO) >A>CT lioogn s.ntexxtt
Quite a few things to mention
1) You shouldn't be using controlsend to send text to a cmd prompt. Instead, you should be using Run, % Compsec. ComSpec is just a shortcut to cmd.exe. So when you do Run, % Compsec you're really just passing whatever comes next to the cmd prompt. Example for running ipconfig: Run, % ComSpec " /k ipconfig"
To easily remember which switch to use, remember that /k will "keep the command prompt open when it's done" and /c will "close it after the commands have run".
Also, make sure you understand the difference between Expression and non-expression.
The following lines of code look different, but each line does the exact same thing:
Run, % ComSpec " /k ipconfig"
Run, %ComSpec% /k ipconfig
2) Instead of writing {Backspace}{Backspace}{Backspace}{Backspace}{Backspace}{Backspace}, instead, include how many times you want the key repated after the key name but before the closing curly brace. {Backspace 6}. This works for any key.
3) BlockInput can be a dangerous command and, usually, I advise others to avoid it when possible. By using Run ComSpec instead of control send, you remove any need to use BlockInput.
4) The problem you were initially having most likely had to do with the text being sent too fast. Lower the send speed with SetKeyDelay.
Try replacing this:
ControlSend, , echo stat_id: 78 : SETTING PRICE TO 2 toactivate: %Title% >> logs.txt{Enter} , ahk_exe cmd.exe
With this:
Run, % ComSpec " /k echo stat_id: 78 : SETTING PRICE TO 2 toactivate: " Title " >> logs.txt"
If you do want to send to the console there are alternatives:
ConsoleSend() https://autohotkey.com/board/topic/25446-consolesend/
Windows 10: You could try pasting text and then send an Enter. Older versions of Windows - Requires additional software: I find Clink to be reliable as you can just Send ^v after installing it https://mridgers.github.io/clink/
I am trying to write a AHK script that sends text to the command prompt. When I send "ipconfig /all" this is what shows up in the command prompt "ipconfig `all". I cant get it to put the "/" in. I have tried the COMSPEC and escape characters. But still cant figure it out.
Below is my current code.
^!d:: ; Ctrl, Alt, d
Run, C:\Users\Alex Chapman\AppData\Local\Microsoft\Windows\WinX\Group3\02
sleep 500
Clipboard = ipconfig /all
send, ^v
send, {Enter}
return
These 4 ways to do it work for me:
Normal: Send ipconfig /all
Escaped: Send ipconfig `/all
Raw: SendRaw ipconfig /all
and the workaround:
clipboard=ipconfig /all
Send ^v
If you want to preserve your clipboard using the workaround you can do the following:
cbbackup:=clipboard
clipboard=ipconfig /all
Send ^v
clipboard:=cbbackup
cbbackup=
Is it possible to substitute AltTab with only one key press ?
i tried this one but it doesn't work
`::AltTab
I use this, you may need to change the Sleep delay.
`::
Send {Alt Down}{Tab}
Sleep 100
Send {Alt Up}
return
I am running Windows 8.1 64-bit and AutoHotkey v1.1.16.05. And my C:\Program Files\AutoHotkey\AutoHotkeyU64.exe is digitally signed by running the script described here (EnableUIAccess.zip) so that Windows allows it to simulate Alt+Tab. The digital sign is required if you are using Windows Vista and onwards.
Download the zip file and extract it. Then run EnableUIAccess.ahk:
It will ask which AutoHotkey executable to sign. Pick one that you need (AutoHotkeyA32.exe, AutoHotkeyU32.exe, AutoHotkeyU64.exe or AutoHotkey.exe).
Then it will ask to save the new executable. You can choose to overwrite the original file or save as another executable.
Finally it will ask to create a "Run Script with UI Access" context menu item. If you choose 'Yes', then you can right-click a .ahk file and choose "Run Script with UI Access", which will use the digitally signed executable to run the .ahk file. But if you choose to overwrite the original file in step 2, then it is not necessary to create this context menu item.
From the docs:
Each Alt-Tab hotkey must be a combination of two keys, which is typically achieved via the ampersand symbol (&).
http://ahkscript.org/docs/Hotkeys.htm#AltTabDetail
You might even be able to avoid messing around with UIAccess and administrator privileges. This works for me on Windows 8.1:
`::Run "C:\Users\Default\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\Window Switcher.lnk"
And for others who are struggling with getting a two-key combination working on Windows 8 or 10, here's an example using Ctrl-Tab to trigger the window switcher:
^Tab::
Run "C:\Users\Default\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\Window Switcher.lnk"
SetTimer EnterOnKeyUp, -1
return
EnterOnKeyUp:
WinWaitActive ahk_class TaskSwitcherWnd
KeyWait Ctrl
Send {Enter}
SetTimer EnterOnKeyUp, Off
return
* Inspired by: Fully Working Alt Tab Win 8