Advertisement
InAbstenia

CapsLockMenu

Oct 15th, 2024
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 52.37 KB | None | 0 0
  1. I changed it to v2 but still having some issues. Here's the unformatted code if anyone wants it.
  2. #Warn
  3. #SingleInstance Force
  4. Persistent
  5. InstallKeybdHook()
  6. InstallMouseHook()
  7. SetWinDelay(-1)
  8. CoordMode("Mouse", "Screen")
  9. SendMode("Input")
  10.  
  11. SetWorkingDir(A_ScriptDir)
  12. filePath := A_ScriptFullPath
  13.  
  14. A_Time := FormatTime(, "Time")
  15. A_ShortDate := FormatTime(, "ShortDate")
  16. A_LongDate := FormatTime(, "LongDate")
  17. A_YY := FormatTime(, "yy")
  18. A_HH := FormatTime(, "HH")
  19. A_tt := FormatTime(, "tt")
  20. {
  21.     Date := A_Now
  22.     List := DateFormats(Date)
  23.     TextMenuDate(List)
  24. }
  25. StartTime := A_TickCount
  26. ScriptVersion := "v.2024.09.13-2"
  27. ScriptName := "Extended CAPS Context Menu"
  28. url := "https://www.github.com/indigofairyx"
  29. dittourl := "https://github.com/sabrogden/Ditto"
  30. everuthingurl := "https://www.voidtools.com/forum/viewtopic.php?t=9787"
  31. autocorrecturl := "https://github.com/BashTux1/AutoCorrect-AHK-2.0"
  32. textifyurl := "https://ramensoftware.com/textify"
  33. Textgraburl := "https://github.com/TheJoeFin/Text-Grab/"
  34. notepadppurl := "https://github.com/notepad-plus-plus/notepad-plus-plus"
  35.  
  36.  
  37. SetCapsLockState("off")  ; might be a good idea to run this on script start up
  38. CapsGuiToggle := false
  39.  
  40. ;;;;;;; DARK MODE ;;;;;;; Change the values below to change the color of the menu.
  41. DarkMode := true ; set initial mode to light
  42. MenuDark()
  43. ; 0=Default  1=AllowDark  2=ForceDark  3=ForceLight  4=Max
  44.  
  45. ;;;;;;;;;;;;;;;;;;;;;;;;;
  46.  
  47.  
  48. MenuDark(Dark:=2) { ;<=--<=CHANGE DEFAULT TO DARK MODE (make it the default)
  49.     ;https://stackoverflow.com/a/58547831/894589
  50.     static uxtheme := DllCall("GetModuleHandle", "str", "uxtheme", "ptr")
  51.     static SetPreferredAppMode := DllCall("GetProcAddress", "ptr", uxtheme, "ptr", 135, "ptr")
  52.     static FlushMenuThemes := DllCall("GetProcAddress", "ptr", uxtheme, "ptr", 136, "ptr")
  53.  
  54.     DllCall(SetPreferredAppMode, "int", Dark) ; 0=Default  1=AllowDark  2=ForceDark  3=ForceLight  =Max
  55.     DllCall(FlushMenuThemes)
  56. }
  57.  
  58. TraySetIcon(A_ScriptDir . "\Images\keyboard-caps-lock-filled xfav arrow send move_256x256.ico")
  59. tray:= A_TrayMenu
  60. tray.add("") ; line ;-------------------------
  61. tray.add("View About && Hotkeys", aboutwindow)
  62. tray.SetIcon("View About && Hotkeys", A_ScriptDir . "\Images\about_48x48.ico")
  63.  
  64.  
  65. ;;; go capslock menu, go Case menu, START  caps menu, capsmenu, go menu, Case
  66. ; menu, Case, Add
  67.  
  68. Case := Menu()
  69. Case.add("") ; top line ;-------------------------
  70. Case.Delete()
  71.  
  72. Case.Add("CAPSLOCK MENU TOGGLE", ToggleCapsLock)
  73. Case.SetIcon("CAPSLOCK MENU TOGGLE", A_ScriptDir . "\Images\keyboard-caps-lock-filled xfav arrow send ove_256x256.ico")
  74. Case.Default := "CAPSLOCK MENU TOGGLE"
  75.  
  76. Case.add("") ; top line ;-------------------------
  77. ; menu, Case, DeleteAll
  78.  
  79. Case.Add("UPPERCase", Upper)
  80. Case.Add("lowerCase", Lower)
  81. Case.Add("Title Case", Title)
  82. Case.Add("Sentence Case", Sentence)
  83. Case.add("") ; line ;-------------------------
  84.  
  85. ctxt := Menu()
  86. ctxt.add()
  87. ctxt.Delete()
  88. ctxt.Add("Capital Case", Capital)
  89. ctxt.add("Reverse", Reverse)
  90. ctxt.Add("iNVERT Case", Invert)
  91. ctxt.add("") ; line
  92. ctxt.add("Remove  Extra   Spaces", RemoveExtraS)
  93. ctxt.Add("Remove ALL Spaces", RASpace)
  94. ctxt.SetIcon("Remove ALL Spaces", A_ScriptDir . "\Images\sc_gluepercent_16x16.ico")
  95. ctxt.add("S p r e a d T e x t", spread) ; cCase ; spread Case
  96. ctxt.add("") ; line ;-------------------------
  97. ctxt.Add("PascalCase", Pascal)
  98. ctxt.Add("camelCase", camel)
  99. ctxt.Add("aLtErNaTiNg Case", Alternating)
  100. ctxt.add("") ;line ;-------------------------
  101. ctxt.Add("Space to Dot.Case", Dot)
  102. ctxt.Add("Space to Snake_Case", Snake)
  103. ctxt.Add("Space to Kebab-Case", Kebab)
  104. ctxt.add("") ; line ;-------------------------
  105. ctxt.add("Fix Linebreaks", FixLineBreaks)
  106.  
  107. Case.add("More Convert Case...", ctxt)
  108. Case.SetIcon("More Convert Case...", A_ScriptDir . "\Images\richtext_editor__32x32.ico")
  109. Case.Add() ; line ;-------------------------
  110. Case.Add("Put in `"Quotes`"", ClipQuote)
  111. Case.SetIcon("Put in `"Quotes`"", A_ScriptDir . "\Images\format quote_24x24.ico")
  112. Case.add("Put in `{Curly Brackets`}", wrapincbrackets)
  113. Case.SetIcon("Put in `{Curly Brackets`}", A_ScriptDir . "\Images\coding code json filetype_24x24.ico")
  114.  
  115.  
  116. cform := Menu()
  117. cform.add() ; line  ;-------------------------
  118. cform.Delete()
  119. cform.add("Put in `/`* Block Comment `*`/", commentblock)
  120. cform.add("Put in (Parentheses)", wrapparen)
  121. cform.add("Put in [Square Brackets]", squbracket)
  122. cform.Add("Put in ``Code - `Inline``", CodeLine)
  123. cform.Add("Put in ``````Code - Box``````", CodeBox)
  124. cform.SetIcon("Put in ``````Code - Box``````", A_ScriptDir . "\Images\selection text code esources_200_24x24.ico")
  125. cform.add("Put in `<`!-- xml Comment --`>", wrapinxmlcomment)
  126. cform.add("") ; line ;------------------------- '
  127. cform.Add("Add &More Formatting", Addmore)
  128. cform.SetIcon("Add &More Formatting", A_ScriptDir . "\Images\notepad++_100.ico")
  129. Case.add("Code Formatting...", cform)
  130. Case.SetIcon("Code Formatting...", A_ScriptDir . "\Images\code spark xfav function_256x256.ico")
  131.  
  132. Case.add() ; line ;-------------------------
  133.  
  134. ; menu, cfind, deleteall
  135. cfind := Menu()
  136. cfind.add("Google This", googlethis)
  137. cfind.SetIcon("Google This", A_ScriptDir . "\Images\google_96x96.ico")
  138. cfind.add("Youtube This", youtubethis)
  139. cfind.SetIcon("Youtube This", A_ScriptDir . "\Images\youtube_64x64.ico")
  140. cfind.add("AHK Syntax Search", ahksearch)
  141. cfind.SetIcon("AHK Syntax Search", A_ScriptDir . "\Images\www.autohotkey.com website favcon_48x48.ico")
  142. cfind.add("Find Locally with Everything", Findwitheverything)
  143. cfind.SetIcon("Find Locally with Everything", A_ScriptDir . "\Images\voidtools-15-Everything-1.5.ico")
  144. cfind.add("Search in System Index", evindex)
  145. cfind.SetIcon("Search in System Index", A_ScriptDir . "\Images\office search find content everything document-viewer_32x32.ico")
  146. cfind.add("Look up on Dictionary.com", Dictionarydotcom)
  147. Case.add("Search Selected Text...", cfind)
  148. Case.SetIcon("Search Selected Text...", A_ScriptDir . "\Images\search find Windows 11 Icon 13_256x256.co")
  149.  
  150. Case.add("") ; line ;-------------------------
  151. Case.add("Insert Date...", dtmenu)
  152. Case.SetIcon("Insert Date...", A_ScriptDir . "\Images\clock SHELL32_16771 256x256.ico")
  153. Case.Add("Open Emoji Keyboard", OpenEmojiKeyboard)
  154. Case.SetIcon("Open Emoji Keyboard", A_ScriptDir . "\Images\emoji-face people_256x256.ico")
  155. Case.Add() ; line ;-------------------------
  156.  
  157. ; menu, ctools, deleteall
  158. ctools := Menu()
  159. ctools.add("Copy Selection To New Document", newtxtfile)
  160. ctools.SetIcon("Copy Selection To New Document", A_ScriptDir . "\Images\document new text txt add LUENT_colored_454_64x64.ico")
  161. ctools.add("Quick Save NewFile.txt", autotxtfile)
  162. ctools.SetIcon("Quick Save NewFile.txt", A_ScriptDir . "\Images\lc_savebasicas_26x26.ico")
  163. ctools.add("Open Quick Notes Dir", openquick)
  164. ctools.SetIcon("Open Quick Notes Dir", "C:\Windows\System32\imageres.dll", "265")
  165. ctools.add("") ; line ;-------------------------
  166. ctools.add("Save A_Clipboard to New Document", SaveClipboardAsTxt)
  167. ctools.SetIcon("Save A_Clipboard to New Document", "C:\xsysicons\Fluent Colored icons\Dopus FLUENT con Set\document rename FLUENT_colored_453_64x64.ico")
  168. ctools.add("View A_Clipboard", viewclip)
  169. ctools.SetIcon("View A_Clipboard", A_ScriptDir . "\Images\message Magic Box.ico")
  170. ctools.add("Clear A_Clipboard", clearclip)
  171. ctools.SetIcon("Clear A_Clipboard", A_ScriptDir . "\Images\clean broom sweep icon.ico")
  172.  
  173.  
  174. ctools.add("") ; line ;-------------------------
  175. ctools.Add("Dark Mode | Light Mode", DMToggle)
  176. ctools.SetIcon("Dark Mode | Light Mode", A_ScriptDir . "\Images\darkmodetoggleshell32_284_48x48.ico")
  177. ctools.add("About", aboutwindow)
  178. ctools.SetIcon("About", A_ScriptDir . "\Images\about_48x48.ico")
  179. ctools.add("Debug Lines", lines)
  180. ctools.SetIcon("Debug Lines", A_ScriptDir . "\Images\bug report FLUENT_colored_217_64x64.ico")
  181. ctools.add("") ; line ;-------------------------
  182. ctools.add("Run AHK Auto Correct", abc)
  183. ctools.SetIcon("Run AHK Auto Correct", A_ScriptDir . "\Images\autocorrect_icon_32x32.ico")
  184. ctools.add("") ; line ;-------------------------
  185. ctools.add("Ditto A_Clipboard", dittobutton)
  186. ctools.SetIcon("Ditto A_Clipboard", A_ScriptDir . "\Images\ditto quote A_Clipboard 128x128.ico")
  187. ctools.add("Textify", TextifyButton)
  188. ctools.SetIcon("Textify", A_ScriptDir . "\Images\textify 128x128.ico")
  189. ctools.add("Text Grab", runtextgrab)
  190. ctools.SetIcon("Text Grab", A_ScriptDir . "\Images\text grab v4 128x128.ico")
  191. ctools.add("Notepad++", runnotepad)
  192. ctools.SetIcon("Notepad++", A_ScriptDir . "\Images\notepad++_100.ico")
  193. ctools.add("") ; line ;-------------------------
  194. ctools.add("Exit Script", exitscript)
  195. ctools.SetIcon("Exit Script", "C:\Windows\System32\imageres.dll", "94")
  196.  
  197. Case.add("Text Tools && Apps", ctools)
  198. Case.SetIcon("Text Tools && Apps", A_ScriptDir . "\Images\Pencil and Ruler__32x32.ico")
  199.  
  200. Case.add() ; line ;-------------------------
  201. Case.Add("Copy", basiccopy)
  202. Case.SetIcon("Copy", A_ScriptDir . "\Images\edit-copy_32x32.ico")
  203. Case.add("Copy + Add to A_Clipboard", appendclip)
  204. Case.SetIcon("Copy + Add to A_Clipboard", A_ScriptDir . "\Images\A_Clipboard--plus_16x16.ico")
  205. Case.add("Cut", basiccut)
  206. Case.SetIcon("Cut", A_ScriptDir . "\Images\edit-cut_32x32.ico")
  207. Case.add("Paste", basicpaste)
  208. Case.SetIcon("Paste", A_ScriptDir . "\Images\edit-paste_256x256.ico")
  209. Case.ADD("Paste As Plain Text", pasteplain)
  210.  
  211. Case.add() ; line ;-------------------------
  212. Case.add("Close This Menu", ExitMenu)
  213. Case.SetIcon("Close This Menu", A_ScriptDir . "\Images\aero Close_24x24-32b.ico")
  214. ; menu, Case, DeleteAll
  215.  
  216.  
  217.  
  218. ;; Date time menu ( bound to cpaslock\Case menu)
  219. TextMenuDate(TextOptions)
  220. {
  221.  MenuItems := StrSplit(TextOptions,"|")
  222.  Loop MenuItems.Length
  223.   {
  224.     Item := MenuItems[A_Index]
  225.     dtmenu := Menu()
  226.     dtmenu.add(Item, dtMenuAction)
  227.     ; Menu, dtmenu, add, %Date%, dtMenuAction ; xadd
  228.   }
  229.  ; menu, dtmenu, add ; line ;-------------------------
  230.  ; Menu, dtMenu, DeleteAll
  231.  ; menu, dtmenu, add, &Exit This Menu, ExitMenu
  232.  ; Menu, dtmenu, icon, &Exit This Menu, %A_ScriptDir%\Images\aero Close_24x24-32b.ico
  233.  ; Menu, dtMenu, Show
  234. ;;;; X NOTE - I can add addiional submenu items here
  235. }
  236.  
  237. DateFormats(Date)
  238. {
  239.  REMOVED:  local
  240. static
  241.   OutputVar := FormatTime(Date, "h:mm tt") ;12 hour clock
  242.   List := OutputVar
  243.   OutputVar := FormatTime(Date, "HH:mm tt") ;24 hour clock
  244.   List := List . "|" . OutputVar
  245.   OutputVar := FormatTime(Date, "ShortDate") ; 9/5/2015
  246.   List := List . "|" . OutputVar
  247.   OutputVar := FormatTime(Date, "MM/dd/yy") ; 09/05/2015
  248.   List := List . "|" . OutputVar
  249.   OutputVar := FormatTime(Date, "MMMM d, yyyy") ; August 26, 2024
  250.   List := List . "|" . OutputVar
  251.   OutputVar := FormatTime(Date, "LongDate") ; Monday, August 26, 2024
  252.   List := List . "|" . OutputVar
  253.   OutputVar := FormatTime(Date, "dddd, MMMM d, yyyy, h:mm tt")  ; Friday, September 6, 2024, 9:46 PM
  254.   List := List . "|" . OutputVar
  255.   OutputVar := FormatTime(Date, "dddd, MMMM d, yyyy, hh:mm:ss tt") ; Friday, September 6, 2024, 9:46:41 PM
  256.   List := List . "|" . OutputVar
  257.   OutputVar := FormatTime(Date, A_now) ; 20240826165553
  258.   List := List . "|" . OutputVar
  259.    OutputVar := FormatTime(Date, "dddd") ; Monday
  260.   List := List . "|" . OutputVar
  261.    OutputVar := FormatTime(Date, "MMMM") ; August
  262.   List := List . "|" . OutputVar
  263.   Return List
  264. }
  265. ;;; end Case menu, end capslock  menu, end date menu
  266.  
  267.  
  268. return
  269.  
  270.  
  271. ;---------------------- CAPS LOCK BANNER -----------------------------------------------------------
  272. ;----------------------------------------------------------------------------------------------------
  273. /***
  274.         ; CCCCCCCCCCCCC               AAA               PPPPPPPPPPPPPPPPP      SSSSSSSSSSSSSSS llllll                                      kkkkkkkk
  275.      ; CCC↑↑↑↑↑↑↑↑↑↑↑↑C              A↑↑↑A              P↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑P   S↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑Sl↑↑↑↑↑l                                      k↑↑↑↑↑↑k
  276.    ; CC↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑C             A↑↑↑↑↑A             P↑↑↑↑↑↑PPPPPP↑↑↑↑↑P ↑↑↑↑↑SSSSSS↑↑↑↑↑↑Sl↑↑↑↑↑l                                      k↑↑↑↑↑↑k
  277.   ; C↑↑↑↑↑CCCCCCCC↑↑↑↑C            A↑↑↑↑↑↑↑A            PP↑↑↑↑↑P     P↑↑↑↑↑PS↑↑↑↑↑S     SSSSSSl↑↑↑↑↑l                                      k↑↑↑↑↑↑k
  278.  ; C↑↑↑↑↑C       CCCCCC           A↑↑↑↑↑↑↑↑↑A             P↑↑↑↑P     P↑↑↑↑↑PS↑↑↑↑↑S             ↑↑↑↑l    ooooooooooo       cccccccccccccccc k↑↑↑↑↑k    kkkkkkk
  279. ; C↑↑↑↑↑C                        A↑↑↑↑↑A↑↑↑↑↑A            P↑↑↑↑P     P↑↑↑↑↑PS↑↑↑↑↑S             ↑↑↑↑l  oo↑↑↑↑↑↑↑↑↑↑↑oo   cc↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑c k↑↑↑↑↑k   k↑↑↑↑↑k
  280. ; C↑↑↑↑↑C                       A↑↑↑↑↑A A↑↑↑↑↑A           P↑↑↑↑PPPPPP↑↑↑↑↑P  S↑↑↑↑SSSS          l↑↑↑↑l ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑o c↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑c k↑↑↑↑↑k  k↑↑↑↑↑k
  281. ; C↑↑↑↑↑C                      A↑↑↑↑↑A   A↑↑↑↑↑A          P↑↑↑↑↑↑↑↑↑↑↑↑↑PP    SS↑↑↑↑↑↑SSSSS     l↑↑↑↑l ↑↑↑↑↑ooooo↑↑↑↑↑oc↑↑↑↑↑↑↑cccccc↑↑↑↑↑c k↑↑↑↑↑k k↑↑↑↑↑k
  282. ; C↑↑↑↑↑C                     A↑↑↑↑↑A     A↑↑↑↑↑A         P↑↑↑↑PPPPPPPPP        SSS↑↑↑↑↑↑↑↑SS   l↑↑↑↑l ↑↑↑↑o     o↑↑↑↑oc↑↑↑↑↑↑c     ccccccc k↑↑↑↑↑↑k↑↑↑↑↑k
  283. ; C↑↑↑↑↑C                    A↑↑↑↑↑AAAAAAAAA↑↑↑↑↑A        P↑↑↑↑P                   SSSSSS↑↑↑↑S  l↑↑↑↑l ↑↑↑↑o     o↑↑↑↑oc↑↑↑↑↑c              k↑↑↑↑↑↑↑↑↑↑↑k
  284. ; C↑↑↑↑↑C                   A↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑A       P↑↑↑↑P                        S↑↑↑↑↑S l↑↑↑↑l ↑↑↑↑o     o↑↑↑↑oc↑↑↑↑↑c              k↑↑↑↑↑↑↑↑↑↑↑k
  285.  ; C↑↑↑↑↑C       CCCCCC    A↑↑↑↑↑AAAAAAAAAAAAA↑↑↑↑↑A      P↑↑↑↑P                        S↑↑↑↑↑S l↑↑↑↑l ↑↑↑↑o     o↑↑↑↑oc↑↑↑↑↑↑c     ccccccc k↑↑↑↑↑↑k↑↑↑↑↑k
  286.   ; C↑↑↑↑↑CCCCCCCC↑↑↑↑C   A↑↑↑↑↑A             A↑↑↑↑↑A   PP↑↑↑↑↑↑PP          SSSSSSS     ↑↑↑↑↑Sl↑↑↑↑↑↑lo↑↑↑↑↑ooooo↑↑↑↑↑oc↑↑↑↑↑↑↑cccccc↑↑↑↑↑ck↑↑↑↑↑↑k k↑↑↑↑↑k
  287.    ; CC↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑C  A↑↑↑↑↑A               A↑↑↑↑↑A  P↑↑↑↑↑↑↑↑P          ↑↑↑↑↑↑SSSSSS↑↑↑↑↑Sl↑↑↑↑↑↑lo↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑o c↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ck↑↑↑↑↑↑k  k↑↑↑↑↑k
  288.      ; CCC↑↑↑↑↑↑↑↑↑↑↑↑C A↑↑↑↑↑A                 A↑↑↑↑↑A P↑↑↑↑↑↑↑↑P          S↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑SS ↑↑↑↑↑↑l oo↑↑↑↑↑↑↑↑↑↑↑oo   cc↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ck↑↑↑↑↑↑k   k↑↑↑↑↑k
  289.         ; CCCCCCCCCCCCCAAAAAAA                   AAAAAAAPPPPPPPPPP           SSSSSSSSSSSSSSS   lllllll   ooooooooooo       cccccccccccccccckkkkkkkk    kkkkkkk
  290.  */
  291.  
  292. ;------------------------- CAPS KEY FUCNCTIONS--------CAPSLOCK-------------------------------------
  293. ;------------------------------ capslock menu -----------------------------------------------------
  294.  
  295.  
  296.  
  297.  
  298. CopyClipboardCLM() ;; function
  299. {
  300.     global ClipSaved  ; Ensure global is used if ClipSaved is accessed elsewhere
  301.     ClipSaved := ClipboardAll()  ; Save the current clipboard contents
  302.   Sleep(750)
  303.     A_Clipboard := ""  ; Clear the clipboard
  304.     Sleep(200)  ; Adjust the sleep time if needed
  305.     Send("^{vk43}")  ; Send Ctrl+C
  306.     Errorlevel := !ClipWait(1.5)  ; Wait for the clipboard to contain data
  307.     if ErrorLevel
  308.     {
  309.         TrayTip("CAPSkey", "Copy to A_Clipboard failed!", 18)
  310.     A_Clipboard := ClipSaved  ; Restore the clipboard
  311.         return
  312.     }
  313. }
  314.  
  315. PasteClipboardCLM() ;; function
  316. {
  317.     global ClipSaved ; Use a similar approach as in CopyClipboardCLM
  318.     Send("^v")  ; Send Ctrl+V
  319.     Sleep(200)  ; Give the system time to paste the clipboard content
  320.     A_Clipboard := ClipSaved  ; Restore the saved clipboard contents
  321.     ClipSaved := ""  ; Clear the variable
  322. }
  323.  
  324.  
  325. PastePlain()
  326. {
  327.  REMOVED:  local
  328.     ClipSaved := ClipboardAll()  ; save original clipboard contents
  329.   Sleep(400)
  330.     A_Clipboard := A_Clipboard  ; remove formatting
  331.   Sleep(150)
  332.     Send("^v")  ; send the Ctrl+V command
  333.     Sleep(100)  ; give some time to finish paste (before restoring clipboard)
  334.     A_Clipboard := ClipSaved  ; restore the original clipboard contents
  335.     ClipSaved := ""  ; clear the variable
  336. }
  337.  
  338. Upper()
  339. {
  340.     CopyClipboardCLM()
  341.     A_Clipboard := StrUpper(A_Clipboard)
  342.     PasteClipboardCLM()
  343. }
  344.  
  345. Lower()
  346. {
  347.     CopyClipboardCLM()
  348.     A_Clipboard := StrLower(A_Clipboard)
  349.     PasteClipboardCLM()
  350. }
  351. Title()
  352. {
  353.     ExcludeList := ["a", "about", "above", "after", "an", "and", "as", "at", "before", "but", "by", for", "from", "nor", "of", "or", "so", "the", "to", "via", "with", "within", "without", "yet"]
  354.     ExactExcludeList := ["AutoHotkey", "iPad", "iPhone", "iPod", "OneNote", "USA"]
  355.     CopyClipboardCLM()
  356.     TitleCase := Format("{:T}", A_Clipboard)
  357.     for _, v in ExcludeList
  358.         TitleCase := RegExReplace(TitleCase, "i)(?<!\. |\? |\! |^)(" v ")(?!\.|\?|\!|$)\b", "$L1")
  359.     for _, v in ExactExcludeList
  360.         TitleCase := RegExReplace(TitleCase, "i)\b" v "\b", v)
  361.     TitleCase := RegExReplace(TitleCase, "im)\b(\d+)(st|nd|rd|th)\b", "$1$L{2}")
  362.     A_Clipboard := TitleCase
  363.     PasteClipboardCLM()
  364. }
  365. Sentence()
  366. {
  367.     ExactExcludeList := ["AutoHotkey", "iPad", "iPhone", "iPod", "OneNote", "USA"]
  368.     CopyClipboardCLM()
  369.     A_Clipboard := StrLower(A_Clipboard)
  370.     ; Clipboard := RegExReplace(Clipboard, "(((^|([.!?]\s+))[a-z])| I | I')", "$u1")  ;og line from aps_menu
  371.   A_Clipboard := RegExReplace(A_Clipboard, "((?:^|\R|[.!?]\s+)[a-z])|(\bi\b)|(\bi'\b)", "$u1") ; added y gpt not inclding this last one  --> Func("Capitalize"))
  372.     ; Clipboard := RegExReplace(Clipboard, "((?:^|[.!?]\s+)[a-z])", "$u1")  ; fastkeys
  373.     for _, v in ExactExcludeList
  374.         A_Clipboard := RegExReplace(A_Clipboard, "i)\b" v "\b", v)
  375.     PasteClipboardCLM()
  376. }
  377.  
  378. Invert()
  379. {
  380.     CopyClipboardCLM()
  381.     Inv_Char_Out := ""
  382.     Loop StrLen(A_Clipboard)
  383.     {
  384.         Inv_Char := SubStr(A_Clipboard, (A_Index)<1 ? (A_Index)-1 : (A_Index), 1)
  385.         if isUpper(Inv_Char)
  386.             Inv_Char_Out := Inv_Char_Out Chr(Ord(Inv_Char) + 32)
  387.         else          if isLower(Inv_Char)
  388.             Inv_Char_Out := Inv_Char_Out Chr(Ord(Inv_Char) - 32)
  389.         else
  390.             Inv_Char_Out := Inv_Char_Out Inv_Char
  391.     }
  392.     A_Clipboard := Inv_Char_Out
  393.     PasteClipboardCLM()
  394. }
  395.  
  396. camel()
  397. {
  398.     CopyClipboardCLM()
  399.     A_Clipboard := StrTitle(A_Clipboard)
  400.     FirstChar := SubStr(A_Clipboard, 1, 1)
  401.     FirstChar := StrLower(FirstChar)
  402.     camelCase := SubStr(A_Clipboard, 2)
  403.     camelCase := StrReplace(camelCase, A_Space)
  404.     A_Clipboard := FirstChar camelCase
  405.     PasteClipboardCLM()
  406. }
  407. Pascal()
  408. {
  409.     CopyClipboardCLM()
  410.     A_Clipboard := StrTitle(A_Clipboard)
  411.     A_Clipboard := StrReplace(A_Clipboard, A_Space)
  412.     PasteClipboardCLM()
  413. }
  414.  
  415. Capital()
  416. {
  417.     ExactExcludeList := ["AutoHotkey", "iPad", "iPhone", "iPod", "OneNote", "USA"]
  418.     CopyClipboardCLM()
  419.     CapitalCase := Format("{:T}", A_Clipboard)
  420.     for _, v in ExactExcludeList
  421.         CapitalCase := RegExReplace(CapitalCase, "i)\b" v "\b", v)
  422.     A_Clipboard := CapitalCase
  423.     PasteClipboardCLM()
  424. }
  425.  
  426. Alternating()
  427. {
  428.     CopyClipboardCLM()
  429. Sleep(200)
  430.     Inv_Char_Out := ""
  431.     A_Clipboard := StrLower(A_Clipboard)
  432.     Loop Parse, A_Clipboard
  433.     {
  434.         if (Mod(A_Index, 2) = 0)
  435.             Inv_Char_Out .= Format("{1:U}", A_LoopField)
  436.         else
  437.             Inv_Char_Out .= Format("{1:L}", A_LoopField)
  438.     }
  439.     A_Clipboard := Inv_Char_Out
  440. Sleep(175)
  441.     PasteClipboardCLM()
  442. }
  443.  
  444.  
  445. Dot()
  446. {
  447.     CopyClipboardCLM()
  448.   Sleep(300)
  449.     if RegExMatch(A_Clipboard, "\-|\_|\.") != "0"
  450.     {
  451.         A_Clipboard := RegExReplace(A_Clipboard, "\-|\_|\.", " ")
  452.     Sleep(200)
  453.         PasteClipboardCLM()
  454.     }
  455.     else
  456.     {
  457.         A_Clipboard := StrReplace(A_Clipboard, A_Space, ".")
  458.     Sleep(200)
  459.         PasteClipboardCLM()
  460.     }
  461. }
  462.  
  463. Snake()
  464. {
  465.     CopyClipboardCLM()
  466.   Sleep(300)
  467.     if RegExMatch(A_Clipboard, "\-|\_|\.") != "0"
  468.     {
  469.         A_Clipboard := RegExReplace(A_Clipboard, "\-|\_|\.", " ")
  470.     Sleep(200)
  471.         PasteClipboardCLM()
  472.     }
  473.     else
  474.     {
  475.         A_Clipboard := StrReplace(A_Clipboard, A_Space, "_")
  476. Sleep(200)
  477.         PasteClipboardCLM()
  478.     }
  479. }
  480.  
  481. Kebab()
  482. {
  483.     CopyClipboardCLM()
  484.   Sleep(300)
  485.     if RegExMatch(A_Clipboard, "\-|\_|\.") != "0"
  486.     {
  487.         A_Clipboard := RegExReplace(A_Clipboard, "\-|\_|\.", " ")
  488.     Sleep(200)
  489.         PasteClipboardCLM()
  490.     }
  491.     else
  492.     {
  493.         A_Clipboard := StrReplace(A_Clipboard, A_Space, "-")
  494.     Sleep(200)
  495.         PasteClipboardCLM()
  496.     }
  497. }
  498.  
  499. FixLineBreaks()
  500. {
  501.     CopyClipboardCLM()
  502.   A_Clipboard := RegExReplace(A_Clipboard, "\R", "`r`n")
  503.   Sleep(300)
  504.     PasteClipboardCLM()
  505. }
  506.  
  507. removeextras()
  508. {
  509.     CopyClipboardCLM()
  510.   Loop
  511.     {
  512.     ; StrReplace() is not Case sensitive
  513.     ; check for StringCaseSense in v1 source script
  514.     ; and change the CaseSense param in StrReplace() if necessary
  515.     A_Clipboard := StrReplace(A_Clipboard, A_Space "" A_Space, A_Space,, &ErrorLevel)
  516.     if (ErrorLevel = 0)
  517.         break
  518.     }
  519.     PasteClipboardCLM()
  520. }
  521.  
  522. wrapparen()
  523. {
  524.     CopyClipboardCLM()
  525.     A_Clipboard := RegExReplace(A_Clipboard, "\s+$")   ;gets rid of whitespace at end
  526.       A_Clipboard := "(" A_Clipboard ")"
  527.     PasteClipboardCLM()
  528. }
  529.  
  530.  
  531. squbracket()
  532. {
  533.     CopyClipboardCLM()
  534.     A_Clipboard := RegExReplace(A_Clipboard, "\s+$")   ;gets rid of whitespace at end
  535.       A_Clipboard := "[" A_Clipboard "]"
  536.     PasteClipboardCLM()
  537. }
  538.  
  539. Reverse()
  540. {
  541.     CopyClipboardCLM()
  542.   temp2 := ""
  543.     ; StrReplace() is not Case sensitive
  544.     ; check for StringCaseSense in v1 source script
  545.     ; and change the CaseSense param in StrReplace() if necessary
  546.     A_Clipboard := StrReplace(A_Clipboard, "`r`n", Chr(29))
  547.       Loop Parse, A_Clipboard
  548.       temp2 := A_LoopField . temp2     ; Temp2
  549.       ; StrReplace() is not Case sensitive
  550.       ; check for StringCaseSense in v1 source script
  551.       ; and change the CaseSense param in StrReplace() if necessary
  552.       A_Clipboard := StrReplace(temp2, Chr(29), "`r`n")
  553.     PasteClipboardCLM()
  554. }
  555.  
  556. OpenEmojiKeyboard()
  557. {
  558.     Send("{LWin down}.")
  559.     Send("{LWin up}")
  560. }
  561.  
  562. spread()
  563. {
  564.     CopyClipboardCLM()
  565.   A_Clipboard := RegExReplace(A_Clipboard, "(?<=.)(?=.)", " ")
  566.     PasteClipboardCLM()
  567. }
  568.  
  569.  
  570.  
  571.  
  572. clearclip(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  573.  ; V1toV2: Added bracket
  574. Run("cmd /C `"echo off | clip`"")
  575. return
  576.  ; V1toV2: Added bracket before function
  577.  
  578. viewclip(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  579.  ; V1toV2: Added bracket
  580. MsgBox(A_Clipboard)
  581. return
  582.  ; V1toV2: Added Bracket before label
  583.  
  584.  
  585. basiccopy(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  586.  ; V1toV2: Added bracket
  587. Send("^{vk43}") ;Ctrl C ; SendInput, ^c Send {Ctrl down}c{Ctrl up}  ; Send ^{vk43}
  588. return
  589.  ; V1toV2: Added Bracket before label
  590.  
  591. basiccut(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  592.  ; V1toV2: Added bracket
  593. SendInput("^x")
  594. return
  595.  ; V1toV2: Added Bracket before label
  596.  
  597. basicpaste(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  598.  ; V1toV2: Added bracket
  599. Send("^{vk56}") ;Ctrl V ; SendInput, ^v
  600. return
  601.  ; V1toV2: Added bracket before function
  602.  
  603. appendclip(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  604. {
  605.     SavedClip := ClipboardAll() ; Save the current clipboard content
  606.     A_Clipboard := ""  ; Clear the clipboard to capture new content
  607.     Sleep(175)  ; Ensure enough time for clipboard to clear
  608.     Send("^c") ; Send Ctrl+C to copy the selected text
  609.     Errorlevel := !ClipWait(1)  ; Wait for clipboard to be filled with new text
  610.  
  611.     if !ErrorLevel
  612.     {
  613.         NewText := A_Clipboard  ; Get the copied text ; If text is successfully copied, append it to he clipboard
  614.         A_Clipboard := SavedClip  ; Restore the original clipboard content
  615.         A_Clipboard := A_Clipboard . "`n`n" NewText  ; Append the new text to the existing content
  616.         Sleep(150)  ; Allow time for clipboard to update
  617.     }
  618.     else
  619.     {
  620.         A_Clipboard := SavedClip ; If no text was copied, restore the original clipboard content
  621.     }
  622.     ; MsgBox, Text has been appended to the clipboard! ; Optional: Notify the user that text was ppended
  623.     return
  624. }
  625. return
  626.  
  627. Lines:
  628. ListLines()
  629. return
  630.  
  631.  
  632. wrapincbrackets(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  633. {
  634. SavedClip := ClipboardAll()
  635. Sleep(300)
  636. A_Clipboard := ""
  637. Sleep(300)
  638. Send("^{vk43}") ;Ctrl C
  639. Errorlevel := !ClipWait(1)
  640. Tmp:=A_Clipboard
  641. Tmp := "`{`n" . Tmp . "`n`}"
  642. A_Clipboard := ""
  643. Sleep(300)
  644. A_Clipboard := Tmp
  645. Send("^{vk56}") ;Ctrl V
  646. Sleep(100)
  647. A_Clipboard := SavedClip
  648. Sleep(100)
  649. return
  650. }
  651. return
  652.  
  653.  
  654. commentblock(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  655. {
  656. SavedClip := ClipboardAll()
  657. Sleep(200)
  658. A_Clipboard := ""
  659. Sleep(300)
  660. Send("^{vk43}") ;Ctrl C
  661. Errorlevel := !ClipWait(1)
  662. Tmp:=A_Clipboard
  663. Tmp := "`/`*`n`n " . Tmp . " `n`n`*`/"
  664. A_Clipboard := ""
  665. Sleep(75)
  666. A_Clipboard := Tmp
  667. Send("^{vk56}") ;Ctrl V
  668. Sleep(100)
  669. A_Clipboard := SavedClip
  670. return
  671. }
  672. return
  673.  
  674. wrapinxmlcomment(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  675. {
  676. SavedClip := ClipboardAll()
  677. Sleep(200)
  678. A_Clipboard := ""
  679. Sleep(200)
  680. Send("^{vk43}") ;Ctrl C
  681. Errorlevel := !ClipWait(1)
  682. Tmp:=A_Clipboard
  683. Tmp := "<`!-- " . Tmp . " -->"
  684. A_Clipboard := ""
  685. Sleep(20)
  686. A_Clipboard := Tmp
  687. Send("^{vk56}") ;Ctrl V
  688. Sleep(100)
  689. A_Clipboard := SavedClip
  690. return
  691. }
  692. return
  693.  
  694.  
  695. CodeLine(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  696. {
  697. SavedClip := ClipboardAll()
  698. Sleep(200)
  699. A_Clipboard := ""
  700. Sleep(200)
  701. Send("^{vk43}") ;Ctrl C
  702. Errorlevel := !ClipWait(1)
  703. Tmp:=A_Clipboard
  704. Tmp := "``" . Tmp . "``"
  705. A_Clipboard := ""
  706. Sleep(75)
  707. A_Clipboard := Tmp
  708. Send("^{vk56}") ;Ctrl V
  709. Sleep(100)
  710. A_Clipboard := SavedClip
  711. return
  712. }
  713. return
  714.  
  715.  
  716. CodeBox(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  717. {
  718. SavedClip := ClipboardAll()
  719. Sleep(200)
  720. A_Clipboard := ""
  721. Sleep(200)
  722. Send("^{vk43}") ;Ctrl C
  723. Errorlevel := !ClipWait(1)
  724. Tmp := A_Clipboard
  725. Tmp := "```````n" . Tmp . "`n``````"
  726. A_Clipboard := ""
  727. Sleep(20)
  728. A_Clipboard := Tmp
  729. Send("^{vk56}") ;Ctrl V
  730. Sleep(100)
  731. A_Clipboard := SavedClip
  732. return
  733. }
  734. return
  735.  
  736.  
  737. ;-------------------------
  738.  
  739. Addmore(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  740. {
  741. Run("`"notepad.exe`" `"" filePath "`"") ; "`%1"
  742. ; WinWaitActive, Notepad
  743. Sleep(2000)
  744. Send("^f")
  745. Sleep(300)
  746. Send("cform")
  747. Sleep(200)
  748. Send("{enter}")
  749. }
  750. return
  751.  
  752. RASpace(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  753.  ; V1toV2: Added bracket
  754. SavedClip := ClipboardAll()
  755. Sleep(200)
  756. A_Clipboard := ""
  757. Sleep(200)
  758. Send("^{vk43}") ;Ctrl C
  759. Errorlevel := !ClipWait(1)
  760. TempText:=A_Clipboard
  761. Sleep(175)
  762. Loop
  763. {
  764.  ; StrReplace() is not Case sensitive
  765.  ; check for StringCaseSense in v1 source script
  766.  ; and change the CaseSense param in StrReplace() if necessary
  767.  TempText := StrReplace(TempText, A_Space, ,, &ErrorLevel) ;%A_Space%%A_Space%
  768.  if (ErrorLevel = 0)
  769.    break
  770. }
  771. A_Clipboard := ""
  772. Sleep(175)
  773. A_Clipboard := TempText
  774. Send("^{vk56}") ;Ctrl V
  775. Sleep(175)
  776. A_Clipboard := SavedClip
  777. Return
  778.  ; V1toV2: Added Bracket before label
  779.  
  780.  
  781. googlethis(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  782. {
  783.         OldClipboard := ClipboardAll()  ; Save the current clipboard content
  784.         A_Clipboard := ""  ; Clear the clipboard to prepare for new content
  785.     Sleep(175)
  786.         Send("^c")
  787.         Errorlevel := !ClipWait(1) ; Wait for the clipboard to contain data
  788.         if (A_Clipboard = "") { ; If the clipboard is empty, use the old clipboard content
  789.             A_Clipboard := OldClipboard
  790.         }
  791.         Run("http://www.google.com/search?q=" A_Clipboard)
  792.         Sleep(200)
  793.         A_Clipboard := OldClipboard ; Restore the original clipboard content
  794.  
  795. }
  796. Return
  797. youtubethis(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  798. {
  799.         OldClipboard := ClipboardAll()  ; Save the current clipboard content
  800.         A_Clipboard := ""  ; Clear the clipboard to prepare for new content
  801.     Sleep(175)
  802.         Send("^c")
  803.         Errorlevel := !ClipWait(1) ; Wait for the clipboard to contain data
  804.         if (A_Clipboard = "") { ; If the clipboard is empty, use the old clipboard content
  805.             A_Clipboard := OldClipboard
  806.         }
  807.         Run("http://www.youtube.com/search?q=" A_Clipboard)
  808.         Sleep(200)
  809.         A_Clipboard := OldClipboard ; Restore the original clipboard content
  810. }
  811. return
  812.  
  813. ahksearch(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  814. {
  815. ; = "https://www.google.com/search?q=site:ahkscript.org+$(Currentselection)"
  816. ; = "https://www.google.com/search?q=site:ahkscript.org+$(Currentselection)"
  817. ;; run, https://www.autohotkey.com/search/?q=%Find%
  818.         OldClipboard := ClipboardAll()  ; Save the current clipboard content
  819.         A_Clipboard := ""  ; Clear the clipboard to prepare for new content
  820. Sleep(175)
  821.         Send("^c")
  822.         Errorlevel := !ClipWait()  ; Wait for the clipboard to contain data
  823.         if (A_Clipboard = "") { ; If the clipboard is empty, use the old clipboard content
  824.             A_Clipboard := OldClipboard
  825.         }
  826.         ; Run, https://www.autohotkey.com/search/?q=%Clipboard%
  827.     Run("`"https://www.google.com/search?q=site:autohotkey.com+" A_Clipboard "`"")
  828.         Sleep(200)
  829.         A_Clipboard := OldClipboard ; Restore the original clipboard content
  830.  
  831. }
  832. return
  833.  
  834. ^+':: ;paste clipboard text in "Quotes"
  835.  ; V1toV2: Added bracket
  836.   saved := A_Clipboard ; save clipboard contents
  837.   Send("`"" A_Clipboard "`"") ; send clipboard content with your characters around it
  838.   A_Clipboard := saved ; restore clipboard
  839.   saved := () ; clear saved
  840. Return
  841.  ; V1toV2: Added Bracket before hotkey or Hotstring
  842.  
  843. ^':: ;'Put selected text in "Quotes"
  844. ClipQuote(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  845. {
  846. SavedClip := ClipboardAll()
  847. Sleep(175)
  848. A_Clipboard := ""
  849. Sleep(75)
  850. Send("^{vk43}") ;Ctrl C
  851. Errorlevel := !ClipWait(1)
  852. Tmp:=A_Clipboard
  853. Tmp := "`"" . Tmp . "`""
  854. ;;;;;;;; Remove space introduced by WORD
  855. ; StrReplace() is not Case sensitive
  856. ; check for StringCaseSense in v1 source script
  857. ; and change the CaseSense param in StrReplace() if necessary
  858. Tmp := StrReplace(Tmp, A_SPACE "`"", "`"")
  859. A_Clipboard := "Tmp"
  860. Sleep(20)
  861. A_Clipboard := Tmp
  862. Send("^{vk56}") ;Ctrl V
  863. Sleep(100)
  864. A_Clipboard := SavedClip
  865. return
  866. }
  867. return
  868.  
  869. +CapsLock::    ; Switch between UPPERCase & lowerCase
  870. {
  871.   origClipboard := A_Clipboard
  872.   A_Clipboard := ""
  873. Sleep(200)
  874.   SendInput("^{vk43}") ;Ctrl C
  875.   Errorlevel := !ClipWait(2)
  876.   if not ErrorLevel
  877.   {
  878.     allCapsBool := "1"
  879.     Loop Parse, A_Clipboard
  880.     {
  881.       if isLower(A_Loopfield)
  882.         allCapsBool := "0"
  883.     }
  884.     if allCapsBool
  885.       A_Clipboard := StrLower(A_Clipboard)
  886.     else
  887.       A_Clipboard := StrUpper(A_Clipboard)
  888.     SendInput("^{vk56}") ;Ctrl V
  889.     Sleep(350)
  890.   }
  891.   A_Clipboard := origClipboard
  892. }
  893. return
  894.  
  895.  
  896.  
  897. dtMenuAction(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  898.   ; clipboard := ""
  899.   ; clipboard := A_ThisMenuItem
  900.   ; SendInput %A_ThisMenuItem%{Raw}%A_EndChar%
  901.  ; V1toV2: Added bracket
  902.   SendInput(A_ThisMenuItem)
  903. Return
  904.  ; V1toV2: Added bracket before function
  905.  
  906. Dictionarydotcom(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)  ; added to caps\Case menu
  907.  ; V1toV2: Added bracket
  908. SaveClip := ClipboardAll()
  909. A_Clipboard := ""
  910. Send("^{vk43}") ;Ctrl C
  911. Errorlevel := !ClipWait(1)
  912. Word := RegExReplace(A_Clipboard, "[^\w\s]")
  913. A_Clipboard := SaveClip
  914. SaveClip := ""
  915. Run("http://dictionary.reference.com/browse/" Word "?s=t")
  916. return
  917.  ; V1toV2: Added Bracket before label
  918.  
  919.  
  920. newtxtfile(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  921.  ; V1toV2: Added bracket
  922. origClipboard := A_Clipboard
  923. Sleep(150)
  924.   A_Clipboard := ""
  925.   Sleep(75)
  926.   SendInput("^{vk43}") ;Ctrl C
  927.   Errorlevel := !ClipWait(1)
  928.   if errorlevel
  929.    {
  930.         TrayTip("CAPSkey", "Copy to A_Clipboard failed.`nAborted Auto Save.", 18)
  931.     A_Clipboard := origClipboard  ; Restore the clipboard
  932.         return
  933.     }
  934.    SavePath := FileSelect("S16", A_MyDocuments, "Save Selected Text as a New Document", "Text Files (*.xt)") ; Prompt for where to save the file
  935.     if (SavePath = "")  ; If no file was selected
  936.         Return
  937.     FileAppend(A_Clipboard, SavePath)  ; Append clipboard contents to the selected file
  938.   Sleep(200)
  939.   A_Clipboard := origClipboard
  940. msgResult := MsgBox("Your selected text as been saved to...`n`n" SavePath "`n`nWould you like to Edit his file now?`n`nThis popup will auto-close in 5 seconds.", "Selected Text Saved", "4 T5")
  941.   if (msgResult = "yes")
  942.     Run("`"notepad.exe`" `"" SavePath "`"")
  943.   if (msgResult = "no")
  944.     return
  945.   if (msgResult = "timeout")
  946.     return
  947. return
  948.  
  949. /*
  950.  ; newtxtfile:  ; og newfile, replaced with better options
  951.   ; origClipboard=%clipboard%
  952.   ; clipboard=
  953.   ; SendInput, ^{vk43} ;Ctrl C
  954.   ; ClipWait, 2
  955.   ; inputbox, notename, Create a File Name, Give your new quick note a name.`n`nNo .ext needed. It ill be saved as a .txt file, , ,
  956.   ; if (noteName = ""){
  957.   ; tooltip, Canceled
  958.   ; sleep 1000
  959.   ; tooltip
  960.   ; return
  961. ; }
  962. ; fileselectFolder, NoteLocation, *%A_MyDocuments%, 3, Select a folder to Save %notename%.txt in.n`nIf %notename%.txt already exists, the new content will be appended to the end of the note.
  963. ; if (noteLocation = ""){
  964.   ; tooltip Canceled - You did not select a valid Location
  965.   ; sleep 1000
  966.   ; tooltip
  967.   ; return
  968. ; }
  969. ; fileappend,%Clipboard%,%NoteLocation%\%notename%.txt
  970. ; msgbox, 4, Edit Now?, Would you like to edit %notename%.txt now?`nThis message box will auto close n 5 seconds., 5
  971. ; ifmsgbox, yes
  972.   ; run, notepad.exe "%NoteLocation%\%notename%.txt"
  973. ; ifmsgbox, no
  974.   ; return
  975. ; ifmsgbox, timeout
  976.   ; return
  977. ; sleep 200
  978.   ; clipboard=%origClipboard%
  979. ; return
  980.  
  981. */
  982.  
  983.  
  984. autotxtfile(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  985. {
  986.   origClipboard := A_Clipboard
  987.   Sleep(150)
  988.   A_Clipboard := ""
  989.   SendInput("^{vk43}") ;Ctrl C
  990.   Errorlevel := !ClipWait(2)
  991.   if errorlevel
  992.    {
  993.         TrayTip("CAPSkey", "Copy to A_Clipboard failed.`nAborted Auto Save.", 18)
  994.     A_Clipboard := origClipboard  ; Restore the clipboard
  995.         return
  996.     }
  997.   IB := InputBox("Give your new quick note a name.`n`nNo .ext needed. It will auto-save as a .txt ile`nIt will automatically be saved to`n" A_ScriptDir "\Auto Saved Text Notes\", "Create a File ame"), notename := IB.Value, ErrorLevel := IB.Result="OK" ? 0 : IB.Result="CANCEL" ? 1 : IB.esult="Timeout" ? 2 : "ERROR"
  998.   if (noteName = ""){
  999.   ToolTip("Canceled")
  1000.   Sleep(1000)
  1001.   ToolTip()
  1002.   return
  1003. }
  1004. DirCreate("Auto Saved Text Notes")
  1005. Sleep(100)
  1006. FileAppend(A_Clipboard, A_ScriptDir "\Auto Saved Text Notes\" notename ".txt")
  1007. Sleep(300)
  1008. }
  1009. return
  1010.  ; V1toV2: Added Bracket before label
  1011.  
  1012.  
  1013. openquick(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  1014.  ; V1toV2: Added bracket
  1015. try  Run(A_ScriptDir "\Auto Saved Text Notes\")
  1016. return
  1017.  ; V1toV2: Added Bracket before label
  1018.  
  1019. SaveClipboardAsTxt(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  1020.  ; V1toV2: Added bracket
  1021.     SavePath := FileSelect("S16", A_MyDocuments, "Save A_Clipboard As", "Text Files (*.*)") ; Prompt or where to save the file
  1022.     if (SavePath = "")  ; If no file was selected
  1023.         Return
  1024.    
  1025.     FileAppend(A_Clipboard, SavePath)  ; Append clipboard contents to the selected file
  1026.     ; MsgBox, Clipboard saved to %SavePath%!
  1027.   msgResult := MsgBox("The text in your A_Clipboard as been saved to...`n`n" SavePath "`n`nWould you ike to Edit this file now?`n`nThis popup will auto-close in 5 seconds.", "A_Clipboard Saved", "4 5")
  1028.   if (msgResult = "yes")
  1029.     Run("`"notepad.exe`" `"" SavePath "`"")
  1030.   if (msgResult = "no")
  1031.     return
  1032.   if (msgResult = "timeout")
  1033.     return
  1034. Return
  1035.  ; V1toV2: Added Bracket before label
  1036.  
  1037.  
  1038. togglenum:
  1039. If (numtoggle := !numtoggle) {
  1040.   SetNumLockState("on")
  1041.   num := Menu()
  1042.   num.togglecheck("Toggle Numlock")
  1043.   num := Gui()
  1044.   num. hide()
  1045.  
  1046.   ; Menu, Case, Rename, Numlock Toggle , Numlock Toggle ON
  1047. }
  1048. else {
  1049.    SetNumLockState("off")
  1050.    num.togglecheck("Toggle Numlock")
  1051.    num. Show("x3606 y1572 h405 w185 noactivate")
  1052. }
  1053. return
  1054.  
  1055.  
  1056. Capsmenubutton:
  1057. ; CapsLockMenu()
  1058. Case.show()
  1059. return
  1060.  
  1061. ToggleCapsLock(){
  1062.     return CapsLockey(, true)
  1063. }
  1064.  
  1065. CapsLockOn(){
  1066.     return CapsLockey(true)
  1067. }
  1068.  
  1069. CapsLockOff(){
  1070.     return CapsLockey(false)
  1071. }
  1072. CapsLockey(state := false, toggle := false)
  1073. {
  1074.     global CAPSGuiToggle
  1075.  
  1076.     ; If toggling, flip the current CapsLock state
  1077.     if (toggle)
  1078.         state := !GetKeyState("CapsLock", "T")
  1079.  
  1080.     ; Set Caps Lock state only if needed (prevents endless toggling)
  1081.     currentCapsState := GetKeyState("CapsLock", "T")
  1082.     if (state != currentCapsState)
  1083.         SetCapsLockState(state)
  1084.  
  1085.     ; Update GUI text
  1086.     currentState := GetKeyState("CapsLock", "T")
  1087.     if (currentState)
  1088.         ogcMyText.Value := "CapsLock Status: ON"
  1089.     else
  1090.         ogcMyText.Value := "CapsLock Status: OFF"
  1091.  
  1092.     ; Toggle the GUI visibility
  1093.     CAPSGuiToggle := !CAPSGuiToggle
  1094.     if (CAPSGuiToggle)
  1095.     {
  1096.         SoundBeep(100, 100)
  1097.         SoundBeep(200, 200)
  1098.         ; Gui, caps: Show, x3370 y2059 NoActivate
  1099.     guicaps()
  1100.     }
  1101.     else
  1102.     {
  1103.         SoundBeep(200, 100)
  1104.         SoundBeep(100, 200)
  1105.         caps := Gui()
  1106.         caps. Hide()
  1107.     }
  1108.   return
  1109. }
  1110.  
  1111. ; Custom CapsLock handler
  1112. $CapsLock::
  1113.  ; V1toV2: Added bracket
  1114.     ErrorLevel := !KeyWait("CapsLock", "T0.25")
  1115.     if ErrorLevel
  1116.         Case.Show() ; Show a menu on long press
  1117.     else
  1118.     {
  1119.         ErrorLevel := !KeyWait("CapsLock", "D T0.25")
  1120.         if ErrorLevel
  1121.             CopyClipboardCLM() ; Custom clipboard function
  1122.         else
  1123.             Send("^v") ; Paste clipboard content
  1124.     }
  1125.     ErrorLevel := !KeyWait("CapsLock")
  1126. return
  1127.  
  1128. ; Toggle CapsLock state via the GUI function
  1129. ; *~CapsLock::
  1130.  ; V1toV2: Added Bracket before hotkey or Hotstring
  1131. !Capslock::
  1132. ^CapsLock::
  1133.  ; V1toV2: Added bracket
  1134. ToggleCapsLock()
  1135.     ; CapsLockey(false, true)
  1136. return
  1137.  
  1138.  
  1139.  
  1140.  
  1141. ;;;;;;;;;; dark mode toggle
  1142. ; Case "Dark Mode | Light Mode":
  1143.  ; Added bracket before function
  1144. DMToggle(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  1145.  ; V1toV2: Added bracket
  1146.     If (DarkMode)
  1147.     {
  1148.         DarkMode := false
  1149.         ;Menu, Case, Toggle Mode, Dark Mode
  1150.         MenuDark(3) ; Set to ForceLight
  1151.   WelcomeTrayTipLight()
  1152.     }
  1153.     else
  1154.     {
  1155.         DarkMode := true
  1156.         ;Menu, Case, Toggle Mode, Light Mode
  1157.         MenuDark(2) ; Set to ForceDark
  1158.   WelcomeTrayTipDark()
  1159.     }
  1160.  
  1161.  
  1162.  
  1163. ExitMenu(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  1164.  ; V1toV2: Added bracket
  1165. Send("{esc}")
  1166. return
  1167.  ; V1toV2: Added Bracket before label
  1168.  
  1169. close(A_GuiEvent, GuiCtrlObj, Info, *)
  1170.  ; V1toV2: Added bracket
  1171. caps.hide()
  1172. return
  1173.  
  1174.  
  1175. ;; extra software options **************************************************
  1176.  ; V1toV2: Added bracket before function
  1177.  ; V1toV2: Added bracket before function
  1178.  
  1179.  
  1180. runtextgrab()
  1181. {
  1182. try  Run("Text-Grab.exe")
  1183. }
  1184.  
  1185. Findwitheverything()
  1186. {
  1187.       ; SavedClip := ClipboardAll
  1188.       ; Clipboard =
  1189.       ; Send ^{vk43} ;Ctrl C
  1190.       ; ClipWait 1
  1191.   Sleep(200)
  1192.     Send("^{vk43}") ;Ctrl C
  1193.     Errorlevel := !ClipWait(1) ; Wait for the clipboard to contain data
  1194.   try    Run("C:\Program Files\Everything 1.5a\Everything64.exe")
  1195.   Sleep(500)
  1196.   Send("^v")
  1197. return
  1198. }
  1199.  
  1200.  
  1201. findwitheverything:
  1202. Findwitheverything()
  1203. return
  1204. evindex(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  1205.  ; V1toV2: Added bracket
  1206. Send("^{vk43}") ;Ctrl C
  1207. Errorlevel := !ClipWait(1)
  1208. runeverything()
  1209. ErrorLevel := !WinWaitActive("Everything 1.5")
  1210. Sleep(300)
  1211. Send("si*: `"" A_Clipboard "`"")
  1212. return
  1213.  ; V1toV2: Added bracket before function
  1214.  
  1215. runeverything() ;; Function
  1216.  
  1217. {
  1218. SetTitleMatchMode(2)
  1219. if WinExist("Everything 1.5")
  1220. {
  1221.   WinActivate("Everything 1.5")
  1222.   ErrorLevel := !WinWait("ahk_exe Everything64.exe")
  1223.   SoundBeep(800)
  1224.   Sleep(200)
  1225.   ControlSend("^{L}") ;this activates the search bar if its not already selected
  1226. }
  1227.  else {
  1228.   TRY    Run("C:\Program Files\Everything 1.5a\Everything64.exe")
  1229. }
  1230. return
  1231. }
  1232.  
  1233.  
  1234. dittobutton(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  1235.  ; V1toV2: Added bracket
  1236. try  Run("Ditto.exe /Open")
  1237. return
  1238.  ; V1toV2: Added Bracket before label
  1239.  
  1240. TextifyButton(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  1241.  ; V1toV2: Added bracket
  1242. try  Run("Textify.exe")
  1243. try  Run("`"C:\Users\" A_UserName "\AppData\Local\Programs\Textify\Textify.exe`"")
  1244. return
  1245.  ; V1toV2: Added bracket before function
  1246.  
  1247.  
  1248.  
  1249. runnotepad() ;; function
  1250. {
  1251. SetTitleMatchMode(2)
  1252. if WinExist("Notepad++")
  1253. {
  1254. WinActivate("ahk_class Notepad++")
  1255.  
  1256.  } else {
  1257.   try    Run("Notepad++.exe")
  1258. }
  1259. if !WinExist("notpad++")
  1260.   try    Run("notepad++.exe")
  1261.     return
  1262. }
  1263.  
  1264. abc(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  1265.  ; V1toV2: Added bracket
  1266. try  Run(A_ScriptDir "\AutoCorrect\AutoCorrect_2.0.ahk")
  1267. return
  1268.  ; V1toV2: Added Bracket before label
  1269.  
  1270. menureturn:
  1271. return
  1272.  
  1273. ^+r:: ;Reload Script
  1274.  ; V1toV2: Added bracket
  1275. ToolTip("Extended CAPS Menu`nis Reloading...")
  1276. Sleep(500)
  1277. ToolTip()
  1278. Reload()
  1279. return
  1280.  
  1281. ;;;;;;;;;;;;;;;;;;;; Dark Mode Activated GUI Script ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  1282. ;;; from Ctrl CapsLock Menu (new, ctrl capslock capslock now - removed ctrl shift capslock).ahk  
  1283.  ; Added bracket before function
  1284.  
  1285. WelcomeTrayTipDark() {
  1286.     static GuiCreated := 0
  1287.     static HwndWelcomeScreen1
  1288.     static MonRight, MonBottom
  1289.     if !GuiCreated  {
  1290.         GuiCreated := 1
  1291.         WelcomeScreen1 := Gui()
  1292.          ; Clickthrough=E0x20
  1293.         WelcomeScreen1.MarginX := "30", WelcomeScreen1.MarginY := "25"
  1294.         WelcomeScreen1.SetFont("s30", "Segoe UI")
  1295.         WelcomeScreen1.BackColor := "1A1A1A"
  1296.         WelcomeScreen1.Add("Text", "y20 clime", "Dark Mode Activated")   ;, %A_UserName% ; make a text ontrol showing welcome back, (username)
  1297.         WinSetTransparent(0)                              ; set gui transparent
  1298.         P := MonitorGetPrimary()                           ; get primary monitor number
  1299.         MonitorGetWorkArea(P, &MonLeft, &MonTop, &MonRight, &MonBottom)                   ; get size f primary monitor
  1300.         WelcomeScreen1.Show("Hide")                       ; Show gui
  1301.         WinGetPos(&X, &Y, &W, &H)                               ; get pos of gui
  1302.         WinMove(MonRight - W - 10, MonBottom - H - 10)  ; move gui to bottom right
  1303.         WinSetRegion("0-0 W" W " H" H " R20-20")                ; round corners
  1304.     }
  1305.     WelcomeScreen1.Show("NA")
  1306.     bf := AnimateFadeIn.Bind(HwndWelcomeScreen1)
  1307.     SetTimer(bf,-200)
  1308. }
  1309.  
  1310.  
  1311. WelcomeTrayTipLight() {
  1312.     static GuiCreated := 0
  1313.     static HwndWelcomeScreen
  1314.     static MonRight, MonBottom
  1315.     if !GuiCreated  {
  1316.         GuiCreated := 1
  1317.         WelcomeScreen := Gui()
  1318.          ; Clickthrough=E0x20
  1319.         WelcomeScreen.MarginX := "30", WelcomeScreen.MarginY := "25"
  1320.         WelcomeScreen.SetFont("s30", "Segoe UI")
  1321.         WelcomeScreen.BackColor := "white"  ;<=--\/---------------COLOR OF BOX / TEXT
  1322.         WelcomeScreen.Add("Text", "y20 cBlack", "Light Mode Activated")   ;, %A_UserName% ; make a ext control showing welcome back, (username)
  1323.         WinSetTransparent(0)                              ; set gui transparent
  1324.         P := MonitorGetPrimary()                           ; get primary monitor number
  1325.         MonitorGetWorkArea(P, &MonLeft, &MonTop, &MonRight, &MonBottom)                   ; get size f primary monitor
  1326.         WelcomeScreen.Show("Hide")                       ; Show gui
  1327.         WinGetPos(&X, &Y, &W, &H)                               ; get pos of gui
  1328.         WinMove(MonRight - W - 10, MonBottom - H - 10)  ; move gui to bottom right
  1329.         WinSetRegion("0-0 W" W " H" H " R20-20")                ; round corners
  1330.     }
  1331.     WelcomeScreen.Show("NA")
  1332.     bf := AnimateFadeIn.Bind(HwndWelcomeScreen)
  1333.     SetTimer(bf,-200)
  1334. }
  1335.  
  1336.  
  1337.  
  1338. AnimateFadeIn(hwnd) {
  1339.     static Value := 0
  1340.     WinSetTransparent(Value+=15, "ahk_id" hwnd)
  1341.     if (Value >= 255) {                         ; if gui is fully opaque
  1342.         Value := 0                              ; reset transparency value
  1343.         bf := AnimateFadeOut.Bind(hwnd) ; make bound function to fade out
  1344.         SetTimer(bf,-1000)     ;<=--------------------------------------------------------CHANGE HOW ONG
  1345.     } else {
  1346.         bf := AnimateFadeIn.Bind(hwnd)  ; create bound functiion to fade in
  1347.         SetTimer(bf,-15)                     ; rerun bound function until gui is fully opaque
  1348.     }
  1349. }
  1350.  
  1351. AnimateFadeOut(hwnd) {
  1352.     static Value := 255
  1353.     WinSetTransparent(Value-=15, "ahk_id" hwnd)
  1354.     if (Value <= 0) {                           ; if gui invisible
  1355.         Value := 255                            ; reset transparency value
  1356.         hwnd := Gui()
  1357.         hwnd.Hide()                        ; hide gui when finished
  1358.     } else {
  1359.         bf := AnimateFadeOut.Bind(hwnd) ; create bound functiion to fade out
  1360.         SetTimer(bf,-15)                     ; rerun bound function until gui is transparent
  1361.     }
  1362. }
  1363.  
  1364.  
  1365. guicaps()
  1366. {
  1367. ; gui, caps: hide
  1368.   caps.Opt("+AlwaysOnTop +ToolWindow -SysMenu -Caption +LastFound")
  1369.   caps. Font("cffb900 s12 bold", "WW Digital")
  1370.   caps. Color("af001d") ; changes background color
  1371.   caps. add("picture", "xm w18 h18", A_ScriptDir . "\Images\keyboard-caps-lock-filled xfav arrow send ove_256x256.ico")
  1372.   caps. Add("Text", "X+M", "CAPS LOCK is ON `~`!`@`#`$`" . `^&&*( `)`_`+`{ `}`|")
  1373.   P := MonitorGetPrimary()                           ; get primary monitor number
  1374.   MonitorGetWorkArea(P, &MonLeft, &MonTop, &MonRight, &MonBottom)                   ; get size of rimary monitor
  1375.   caps. show("noactivate") ;x3370 y2059
  1376.   WinSetTransColor("af001d")
  1377.   ; Gui, WelcomeScreen1:Show, Hide                       ; Show gui
  1378.   WinGetPos(&X, &Y, &W, &H)                               ; get pos of gui
  1379.   WinMove(MonRight - W - 10, MonBottom - H - 10)  ; move gui to bottom right
  1380.   WinSetRegion("0-0 W" W " H" H " R20-20")                ; round corners
  1381.  
  1382.   ; gui, caps: show, x3370 y2059 noactivate
  1383.  
  1384.   ; Gui, Show, % "x" . (3430) . "y" . (2061) . " NoActivate"
  1385.     ; WinSet, TransColor, af001d
  1386.   ; gui, caps: hide
  1387. }
  1388.  
  1389.  
  1390. aboutwindow(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  1391.  ; V1toV2: Added bracket
  1392. aboutwindow()
  1393. return
  1394.  ; V1toV2: Added bracket before function
  1395.  
  1396. Aboutwindow()
  1397. {
  1398. global
  1399. aboutwindow := "
  1400. (
  1401. " ScriptName "
  1402. " URL "
  1403. Last Update: " ScriptVersion "
  1404.  
  1405. This AutoHotkey menu is meant to be run on *[SELECTED TEXT.]*
  1406. It has been modified to show when text is not selected,
  1407. therefore, at times, it may not work as expected.
  1408. E.G. if no text is selected it a text editor and you fire a menu item,
  1409. it may copy and format an entire line.
  1410. A.k.a., use with Caution!!! Especially when working in file manager.
  1411. If you use it copy and paste functions on files,
  1412. it will copy the files themselves unless you hit F2 first
  1413. to select text in the file name.
  1414.  
  1415. Its been pieced together from about 3 other similar scripts,
  1416. with extra functions I created. I adding app launcher,
  1417. search the web or local computer from selected text,
  1418. save selected text to a New Text Document,
  1419. added some code formatting opitons,
  1420. insert date and time,
  1421. added light & dark mode toggle (dark is default),
  1422. added a GUI that show over the system try when your caps lock is toggled.
  1423. etc... And more to come.
  1424.  
  1425. The Functions run mostly from the menu, there are some some hotkey too....
  1426. )"
  1427.  
  1428. hotkeys := "
  1429. (
  1430. Hotkeys!
  1431. Extend CapsLock Functionality Using AutoHotkey:
  1432.   - Single Tap = Copy aka Ctrl+C
  1433.   - Double Tap = Paste aka Ctrl+V
  1434.   - Long Press = Show Extended CAPLOCK Menu
  1435.  
  1436. Ctrl + Capslock to Toggle CAPSLock
  1437. Alt + Capslock to Toggle CAPSLock   and CAPS can be toggled from the menu.
  1438. Shift + Capslock to Switch Between UPPERCase and\or lowerCase
  1439.  
  1440. Win + O to Search Selected Text in Google
  1441. Win + F to Search Selected Text Locally Using Everything 1.5a
  1442. Ctrl + ' to Wraps the Selected Text In Quotes
  1443. Ctrl + Shift + ' to Paste your A_Clipboard in Quotes
  1444. Win + H to Add Auto Correct Hot Strings
  1445. Ctrl + Shift + R to Reloads the Script
  1446. )"
  1447.  
  1448.  
  1449. caps.BackColor := "171717"
  1450. caps.SetFont("s10")
  1451. caps.SetFont("cffb900")
  1452. caps.add("text", "xm", aboutwindow)
  1453. caps.add("picture", "xm", A_ScriptDir . "\Images\Screenshots\menus_caps_464x57.png")
  1454.  
  1455. caps.SetFont("cA0BADE")
  1456. caps.add("picture", "xm w36 h36", A_ScriptDir . "\Images\code spark xfav function_256x256.ico")
  1457. caps.add("text", "x+m", hotkeys)
  1458.  
  1459. caps.Add("Link", "xm", "<a href=`"https://www.github.com/indigofairyx`">This Scripts Github Page</a>")
  1460.  
  1461. caps.add("text", "xm cffb900", "There are a few pieces of free software I use and built into this menu s a launcher for these tools.`nThe ones that are free I left in the menu.`nHeres a list of links to hem if you want some awesome software.")
  1462.  
  1463. caps.Add("Link", "xm", "<a href=`"https://github.com/sabrogden/Ditto`">Ditto - A_Clipboard Manager</>")
  1464. caps.Add("Link", "xm", "<a href=`"https://www.voidtools.com/forum/viewtopic.php?t=9787`">Everything v1.a - Powerful local search tool</a>")
  1465. caps.Add("Link", "xm", "<a href=`"https://ramensoftware.com/textify`">Textify - Lets you copy text out f message boxes and guis</a>")
  1466. caps.Add("Link", "xm", "<a href=`"https://github.com/TheJoeFin/Text-Grab/`">Text Grab - Amazing OCR ool</a>")
  1467. caps.Add("Link", "xm", "<a href=`"https://github.com/notepad-plus-plus/notepad-plus-plus`">Notepad++ - ou never know.</a>")
  1468. caps.Add("Link", "xm", "<a href=`"https://github.com/BashTux1/AutoCorrect-AHK-2.0`">AHK Global Auto orrect Script - This is already included here.</a>")
  1469.  
  1470. ogcbuttonClose := caps.add("button", "xm", "Close")
  1471. ogcbuttonClose.OnEvent("Click", close.Bind("Normal"))
  1472.  
  1473. caps.Opt("+Border +Resize -MaximizeBox +Dpiscale")
  1474. caps.Title := "Extended CAPS Menu - About"
  1475. caps.show()
  1476. }
  1477.  
  1478.  
  1479. exitscript(A_ThisMenuItem, A_ThisMenuItemPos, MyMenu)
  1480.  ; V1toV2: Added bracket
  1481. ExitApp()
  1482. return
  1483.  
  1484.  
  1485. /* image list for this file.... picture list
  1486. gui, add, text, xm, Credit and Thanks to these two from whom the main structure of this menu came from.
  1487. Gui, Add, Link, xm, <a href="https://github.com/S3rLoG/CapsLock_Menu">S3rLoG - Github Page</a>
  1488. gui, add, text, x+m, `&
  1489. Gui, Add, Link, x+m, <a href="https://pastebin.com/g6BzS4A8">MRFace1 - Pastebin</a>
  1490.  
  1491.  
  1492. */
  1493.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement