Skip to content

Instantly share code, notes, and snippets.

@jasondavis
Forked from davebrny/text launcher.ahk
Created August 28, 2020 03:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jasondavis/718043cab55086ea70ab04d011385d85 to your computer and use it in GitHub Desktop.
Save jasondavis/718043cab55086ea70ab04d011385d85 to your computer and use it in GitHub Desktop.
(autohotkey) - launch files/folders/urls from a text list
#noEnv
#singleInstance, force
sendMode, input
return
!l:: goSub, get_text_to_launch
!+l::goSub, text_launcher ; repeat last selection
get_text_to_launch:
clipboard_save := clipboardAll
clipboard := ""
send ^{c} ; check for selected text
clipWait, 0.3
if (clipboard = "") ; if nothing was selected, then select all
{
send ^{a}^{c}
clipWait, 0.3
send {right} ; deselect text
}
selected_text := clipboard
clipboard := clipboard_save
goSub, text_launcher
return
text_launcher:
menu, tl_menu, add, % t := "text launcher", run_line
menu, tl_menu, default, % t
menu, tl_menu, disable, % t
menu, tl_menu, add
; create menu
loop, parse, selected_text, `n, `r
{
if a_loopField is space
continue
line := trim(a_loopField)
if fileExist("C:\Users\" a_userName . line)
line := "C:\Users\" a_userName . line ; convert "\Documents\file.txt" to full path
quoted_path := subStr(line, 2, strLen(line) - 2) ; catch paths with quotes on either side
if fileExist(quoted_path)
line := quoted_path
; if url, folder or file
if regExMatch(line, "http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+")
or instr(fileExist(line), "D")
or fileExist(line)
menu, tl_menu, add, % line, run_line
}
menu, tl_menu, show
menu, tl_menu, delete
return
run_line:
run, % a_thisMenuItem
return
/*
[script info]
version = 1.0
description = launch files/folders/urls from a text list
author = davebrny
source = https://gist.github.com/davebrny/dea8b041f3d3ac3faeb9d915163c0ba3
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment