Snippets Collections
$Pause:: ; The § should prevent Pause from triggering itself
KeyWait, W, D T3 ; T3 gives you three seconds to press W
if (Errorlevel)
  Send {Pause} ; By the way, this is really just necessary if you wanna preserve the original pause functionality
else
  MsgBox You pressed Pause+W!
return
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
;keyhistory
;#InstallMouseHook
#installkeybdhook
SetNumLockState,On
SetNumLockState,AlwaysOn

SetScrollLockState,Off
SetScrollLockState,AlwaysOff
return
;

CapsLock::
	KeyWait, CapsLock
	If (A_PriorKey="CapsLock")
		SetCapsLockState, % GetKeyState("CapsLock","T") ? "Off" : "On"
Return

#If, GetKeyState("CapsLock", "P") ;Your CapsLock hotkeys go below

;i::+Tab
i::Up
j::Left
;k::Tab
k::Down
l::Right ;u::Send {Home}
u::-  ;o::Send {End}
;u::Send {End}
o::Run C:\A Steel Trap\Duo\best ahk\done\move_from_photos_to_end_of_title.ahk
;o::Send {End} ;p::Send {PgUp}
p::Run C:\A Steel Trap\Duo\best ahk\done\item_specifics.ahk  ;p::Send {Home}
[::Send {End}
]::Send {PgDn}
=::Send {PgUp}
`;::Send {BS}
Space::Send {Return}
0::Send {PgUp}
1::6
2::7
3::8
4::9
5::
SC029::-

WheelLeft::^PgUp
WheelRight::^PgDn
;XButton2::Home
;XButton1::End


sc045::Send {down 9}
Wheeldown::Down
Wheelup::Up
!m::Run C:\A Steel Trap\Duo\best ahk\search_master_list_box.ahk
^F7::Run C:\A Steel Trap \Duo\best ahk\close firefox tabs to the right.ahk
^PgUp::Run C:/A Steel Trap/Duo/best ahk/done/photo_gallery.ahk
^PgDn::Run C:/A Steel Trap/Duo/best ahk/done/photo_gallery_open_double_including_previous_photo.ahk
Numlock::Run C:\A Steel Trap\Duo\best ahk\6bitStart.ahk

LButton::Run C:\A Steel Trap\Duo\best ahk\activatesixbit.ahk
;RButton::Run C:\A Steel Trap\Duo\best ahk\ahk to do\clickdragphotos.ahk
RButton::Run C:\A Steel Trap\Duo\best ahk\done\organize_photo_order_click.ahk
MButton::Run C:\A Steel Trap\Duo\best ahk\done\organize_photo_order_shoes-dbltagmove_click.ahk
Enter::^v
PgUp::Volume_Up
PgDn::Volume_Down
Right::Media_Next
Left::Media_Prev
Down::Media_Play_Pause
q::y
;w::u
w::Run C:\A Steel Trap\Duo\best ahk\done\google.ahk
;e::i
e::!d
r::o
t::p
y::send t-strap `

;a::h
;s::j
;d::k
;f::l
a::Run C:\A Steel Trap\Duo\best ahk\done\firefox.ahk
s::f4
d::^w
f::^t


g::send t-shirt `
h::Run C:\A Steel Trap\Duo\best ahk\clickwind_pending_pics.ahk

z::b
x::n
c::m
v::send v-neck`  ;v::Run C:\A Steel Trap\Duo\best ahk\done\save_and_exit.ahk ;b::send pullover ` ;n::Run C:\A Steel Trap\Duo\best ahk\done\centermouse&click.ahk
b::send t-strap `
;n::Up
;n::+Tab
n::Send .5`
;m::Down
;m::Send {-}`
m::+Tab
;Send {-}`
;m::send {#}` ;Tab::Send {Tab 5}
;Tab::Send {Tab 3} ;
Tab::Run C:\A Steel Trap\Duo\best ahk\timenowdate.ahk
End::Run C:\A Steel Trap\Duo\best ahk\done\saveclose2.ahk
;^F11::Run C:\A Steel Trap\Duo\best ahk\ahk to do\clickwind_delete_photos.ahk
;,::Send .5`  ;,::Send {!}`  
,::Send /P`
.::Send .5`
;.::Run C:\A Steel Trap\Duo\best ahk\done\new_item.ahk
F12::Send e-mail address
/::Run C:\A Steel Trap\Duo\best ahk\done\saveclose2.ahk
;Backspace::Run C:\A Steel Trap\Duo\best ahk\ahk to do\clickdragphotos.ahk
Backspace::Run C:\A Steel Trap\Duo\best ahk\done\photo_gallery_close_all_photos.ahk
;Backspace::Run C:\A Steel Trap\Duo\best ahk\done\organize_photo_order_click.ahk
;Run C:\A Steel Trap\Duo\best ahk\music\copy.ahk
;Left::+Tab
;Delete::Run C:\A Steel Trap\Duo\best ahk\music\copy.ahk
^c::Run C:\A Steel Trap\Duo\best ahk\clickwind_pending_pics.ahk

;
ScrollLock::
	KeyWait, ScrollLock
	If (A_PriorKey="ScrollLock")
		SetScrollLockState, % GetKeyState("ScrollLock","T") ? "Off" : "On"
Return

#If, GetKeyState("ScrollLock", "P") ;Your ScrollLock hotkeys go below

;i::+Tab
i::s
a::Run C:\A Steel Trap\Duo\best ahk\done\new_item_clear_photos.ahk
s::Run C:\A Steel Trap\Duo\best ahk\done\organize_photo_order.ahk
;d::Run C:\A Steel Trap\Duo\best ahk\done\organize_photo_order_shoes-dbltagmove.ahk
Tab::f4
Numpad0::
Numpad1::
;Numpad2::Send {Down 9}
Numpad2::Tab
Numpad3::
Numpad4::Left
;Numpad5::Down
Numpad5::+Tab
Numpad6::Right
Numpad7::
Numpad8::Up
Numpad9::Run C:\A Steel Trap\Duo\best ahk\click_win_sold_items_search_when_shipping.ahk
NumpadEnter::
t::Send personal email`
;w::^w
w::^t
f::Run C:\A Steel Trap\Duo\best ahk\done\firefox.ahk
g::Run C:\A Steel Trap\Duo\best ahk\done\google.ahk



Up::Send {Up 5}
;

NumLock::
	KeyWait, NumLock
		
#If, GetKeyState("NumLock", "P")

Numpad0::Space
Numpad1::Run C:\A Steel Trap\Duo\best ahk\done\saveclose2.ahk
Numpad2::Tab
Numpad3::Send {Tab 6}
Numpad4::Left
;Numpad5::Run C:\A Steel Trap\Duo\best ahk\click_win_sold_items_search_when_shipping.ahk
Numpad5::+Tab
Numpad6::Right
Numpad7::Down
Numpad8::Send phone number`
NumpadDot::Run C:\A Steel Trap\Duo\best ahk\done\numpad_half.ahk
;NumpadSub::SC028  ;this is for the single quotation character
NumpadDiv::Run C:\A Steel Trap\Duo\best ahk\done\saveclose2.ahk
;NumpadMult::SC01A
NumpadMult::Run C:\A Steel Trap\Duo\best ahk\done\brackets.ahk
NumpadSub::SC01B
NumpadEnter::Space
Numpad9::Run C:\A Steel Trap\Duo\best ahk\done\numpad_quarter.ahk
NumpadAdd::Run C:\A Steel Trap\Duo\best ahk\done\99cents.ahk


e::+Tab
d::Tab
a::Run C:\A Steel Trap\Duo\best ahk\6bitStart.ahk
s::Run C:\A Steel Trap\Duo\best ahk\done\item_specifics.ahk
q::Run C:\A Steel Trap\Duo\best ahk\done\saveclose2.ahk
;f::Run C:\A Steel Trap\Duo\best ahk\done\add_single_listing.ahk
f::send c108`
d::Send Does not Apply`
c::Send logininfo{Tab}`
r::Run C:\A Steel Trap\Duo\best ahk\done\move_mouse_to_shipping.ahk
w::Run C:\A Steel Trap\Duo\best ahk\done\change_price.ahk
v::Run C:\A Steel Trap\Duo\best ahk\done\new_item.ahk
Tab::Send {Tab 5}
4::Send 14-14.5 - S mens `
5::Send 15-15.5 - M mens `
6::Send 16-16.5 - L mens `
7::Send 17-17.5 - XL mens `
8::Send 18-18.5 - 2XL mens `
Space::Send {Space 7}
t::Send otheremail`
i::+Tab
k::Tab
`;::Send {BS}
j::Send {Tab 7}

Return

;
#Persistent
;
CapsLock:: 
	Keywait, CapsLock
	If (A_PriorKey="CapsLock")
		return
Return
#if, GetKeyState("CapsLock", "P")
;CLEANUP
p::FileRecycleEmpty				;Capslock + P		empty recycle bin
;
;CLIPBOARD
u::Run %clipboard%				;Capslock + U		Start URL in clipboard
v::							;Capslock + V		Paste as plain text
ClipSaved := ClipboardAll
Clipboard = %Clipboard%
SendInput, ^v
Sleep, 250
Clipboard := ClipSaved
VarSetCapacity(ClipSaved, 0)
return
s::							;Capslock + S		search Startpage, text in clipboard
Send, ^{vk43} ;Ctrl C
Sleep 50
Run, https://www.startpage.com/do/search?q=%clipboard%
return
t::							;Capslock + T		translate clipboard with DeepL
Send, ^{vk43} ;Ctrl C
Sleep 50
Run, https://www.deepl.com/translator
Sleep 1000
Send ^{vk56} ;Ctrl V
;
return
;WINDOWS
c::							;Capslock + C		centre active window
	WinGetPos,,, Width, Height, A
	WinMove, A,, (A_ScreenWidth/2)-(Width/2), (A_ScreenHeight/2)-(Height/2)
return
;FAVORITE TOOLS
numpad1::Run, D:\EverEdit\EverEdit.exe				;Capslock + NumPad1	EverEdit
numpad4::Run, D:\FreeCommander\FreeCommander.exe	;Capslock + NumPad4	FreeCommander
;
;**********					;End Capslock hotkeys
#If
;**********					;End Capslock hotkeys
SetTitleMatchMode 2
DetectHiddenText, on
Process, priority, AutoHotkey.exe, high
Process, priority, tn525032.exe, high

SetBatchLines, 20ms
SetKeyDelay, 10ms
SetMouseDelay, 10ms
SetWinDelay, 10ms
SetControlDelay, 10ms
SetWorkingDir , %A_ScriptDir%

#NoEnv
#include DDE.ahk
#include RumbaDDE.ahk
#include Table.ahk
#singleinstance force

Apptitle = AS/400 Pull

secvarorg = 2  ;Number of seconds to wait till autoconnecting to AS400
	
GUI:
Gui, Color, 0xbbd5f4
Gui, Margin, X
Gui, Font, norm
Gui, Font, s7
Gui, Add, Button, gddecount W130, Please Wait...
Gui, Add, Button, gRunIAFEP W130, Please Wait...
Gui, Add, Button, gSetup W130, Run Rumba Setup
Gui, Add, Button, gBUTTONSTOP W130, STOP
;Gui, Add, Button, gddecount W130, count

Gui, Add, GroupBox, YM x+20 section W150 H130, AS/400 Session Select
Gui, Add, Radio, xs+10  ys+20 vRumbaA  gButtonConnect checked	, Session A
Gui, Add, Radio, xs+10  ys+40 vRumbaB  gButtonConnect 			, Session B
Gui, Add, Radio, xs+10  ys+60 vRumbaC  gButtonConnect 			, Session C
Gui, Add, Radio, xs+10  ys+80 vRumbaD  gButtonConnect 			, Session D
Gui, Add, Radio, xs+10  ys+100 vRumbaT gButtonConnect 			, Session Test

Gui, Add, Text, Ym x+70 W100,Auto-Connecting
Gui, Add, Text,  W100,( In %secvarorg% Seconds )
Gui, Add, Text,  W100,
Gui, Add, Text,  W100,
Gui, Add, Text,  W100,

Gui, Show, , %Apptitle%

loop, %secvarorg%
{
sleep,1000
secvarorg--
seccountdown := "( In " secvarorg " Seconds )"
GuiControl,, Static2 , %seccountdown%
}

If ( RumbaB > 0 || RumbaC > 0 || RumbaD > 0 || RumbaT > 0)
{
return
}

goto buttonConnect
return
;~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`


;~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`
ButtonStop:
DDE_Kill()
Return
;~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`


;~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`
buttonConnect:
Gui, Submit, nohide
Start := A_TickCount
SetTimer, ActivateWinUM, 100

if RumbaA = 1
{
Rumbawsf :="A.WSF"
}
if RumbaB = 1
{
Rumbawsf :="B.WSF"
}
if Rumba C = 1
{
Rumbawsf :="C.WSF"
}
if RumbaD = 1
{
Rumbawsf :="D.WSF"
}
if RumbaT = 1
{
Rumbawsf :="TEST.WSF"
}

DDE_Connect("Rumbawsf",Rumbawsf)
DDE_Kill()
Sleep,250
DDE_Connect("Rumbawsf",Rumbawsf)

SetTimer, ActivateWinUM, off
if DDEErrorCount > 2
{
GuiControl,, Static1 , % "Failed Connection"
GuiControl,, Static2 , % "Timeout After: "
GuiControl,, Static3 , % round(connecttimercount) " Seconds"
Return
}
Else
{
ToolTip,||||||||||||||||||||||||||||||||`n||||||||||||||||||||||||||||||||`n||||||||||||||||||||||||||||||||`n`nDDE CONNECTED to %Rumbawsf%`n`n||||||||||||||||||||||||||||||||`n||||||||||||||||||||||||||||||||`n||||||||||||||||||||||||||||||||
SetTimer, RemoveToolTip, 1000
GuiControl,, Static1 , % "Connected"
GuiControl,, Static2 , To: %Rumbawsf%
GuiControl,, Static3 , % "In: " connecttimercount " Seconds"
GuiControl,, Button1, % "Run Create List" 
GuiControl,, Button2, % "Run Delete List" 

return
}
Return

ActivateWinUM:
MouseGetPos,,, WinUMID
ToolTip,Please wait `n`nDDE Connecting to %Rumbawsf%

GuiControl,, Static1 , % "Connecting to"
GuiControl,, Static2 , % "To: " Rumbawsf
connecttimercount := SubStr("0" Floor((A_TickCount - Start) / 1000 - Floor((A_TickCount - Start) / 60000) * 60), -1, 2) "." SubStr("0" Mod(A_TickCount - Start, 1000), -1, 2)
GuiControl,, Static3 , % "For: " connecttimercount " Seconds"

if connecttimercount >= 15
{
DDE_Kill("Rumbawsf",Rumbawsf)
SetTimer, ActivateWinUM, off
ToolTip
msgbox, Make sure the appropriate Rumba Session is Open.
}
return

RemoveToolTip:
SetTimer, RemoveToolTip, Off
ToolTip
return
;~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`


;~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`
Setup:
Rumba := "ahk_class WdPageFrame"
winactivate, %Rumba%
winwaitactive, ahk_class WdPageFrame
IfWinNotActive, %Rumba%, , WinActivate, %Rumba%,	;activates a window if it is not already active
WinWaitActive, %Rumba%, 		
;---Options>Edit
WinMenuSelectItem, %Rumba%,, Options , Edit 										;opens a windows menu
winwait, Edit Options
;---Options>Edit>Features
Control, Check,, button1, Edit Options
sleep, 50
Control, Uncheck,, button2, Edit Options
sleep, 50
Control, Uncheck,, button3, Edit Options
sleep, 50
;---Options>Edit>Parsing
SendMessage, 0x1330, 2,, SysTabControl321, Edit Options
sleep, 50
Control, check,, button2, Edit Options
sleep, 50
WinWait, Edit Options, 
IfWinNotActive, Edit Options, , WinActivate, Edit Options, 
WinWaitActive, Edit Options, 
;---Options>Edit>Ok Button on Parsing Tab
control, check,, button13, Edit Options
;---Options>Display
WinMenuSelectItem, %Rumba%,, Options , Display
winwait, Display Options
sleep, 50
Control, Uncheck,, button8, Display Options ;Input Error Dialog
WinWait, Display Options, 
IfWinNotActive, Display Options, , WinActivate, Display Options, 
WinWaitActive, Display Options, 
;---Options>Display>Ok Button on Display Tab
control, check,, button12, Display Options
SetTitleMatchMode, fast
return
;~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`

RunIAFEP:
WaitStringUni("IND2762")
Loop 16
{
Cashier := AutoBlockUni((8+a_index),8)
RemoveInString(Cashier,,"C N R T") 
;---
fesls := AutoBlockUni((8+a_index),47)
RemoveInString(fesls,,"C N R T")
;---
avgodr := AutoBlockUni((8+a_index),58)
RemoveInString(avgodr,,"C N R T")
;---
MonPerSgnOnHR := AutoBlockUni((8+a_index),71)
RemoveInString(MonPerSgnOnHR,,"C N R T")
;---
MPH := AutoBlockUni((8+a_index),83)
RemoveInString(MPH,,"C N R T")
;---
SgnOffPerNumTans := AutoBlockUni((8+a_index),97)
RemoveInString(SgnOffPerNumTans,,"C N R T")
;---
IPM := AutoBlockUni((8+a_index),107)
RemoveInString(IPM,,"C N R T")
;---
ScanPercent := AutoBlockUni((8+a_index),117)
RemoveInString(ScanPercent,,"C N R T")
;---
ItemsPerMemb := AutoBlockUni((8+a_index),129)
RemoveInString(ItemsPerMemb,,"C N R T")

PGOne .= cashier a_tab fesls a_tab avgodr a_tab MonPerSgnOnHR a_tab MPH a_tab SgnOffPerNumTans a_tab IPM a_tab ScanPercent a_tab ItemsPerMemb "`n"
}
SendDDEUni("@k")
Loop 16
{
InaTime := AutoBlockUni((8+a_index),42)
RemoveInString(InaTime,,"C N R T") 
;---
NumOur := AutoBlockUni((8+a_index),52)
RemoveInString(NumOur,,"C N R T")
;---
Pickups := AutoBlockUni((8+a_index),62)
RemoveInString(Pickups,,"C N R T")
;---
VoidTrans := AutoBlockUni((8+a_index),72)
RemoveInString(VoidTrans,,"C N R T")
;---
FERew := AutoBlockUni((8+a_index),84)
RemoveInString(FERew,,"C N R T")
;---
NumOfMembs := AutoBlockUni((8+a_index),96)
RemoveInString(NumOfMembs,,"C N R T")
;---
PercentKeyed := AutoBlockUni((8+a_index),105)
RemoveInString(PercentKeyed,,"C N R T")
;---
SignOffs := AutoBlockUni((8+a_index),117)
RemoveInString(SignOffs,,"C N R T")
;---
NumItems := AutoBlockUni((8+a_index),129)
RemoveInString(NumItems,,"C N R T")

PGTwo .= InaTime a_tab NumOur a_tab Pickups a_tab VoidTrans a_tab FERew a_tab NumOfMembs a_tab PercentKeyed a_tab SignOffs a_tab NumItems "`n"
Joined := Table_Append( PGOneLeft, PGOneRight,1)
}
SendDDEUni("@k")
/*Loop 16
{
InaTimePerMem := AutoBlockUni((8+a_index),42)
RemoveInString(InaTime,,"C N R T") 
;---
TendTimePerMem := AutoBlockUni((8+a_index),52)
RemoveInString(TendTimePerMem,,"C N R T")
;---
RingTimePerMem := AutoBlockUni((8+a_index),62)
RemoveInString(RingTimePerMem,,"C N R T")
;---
NonSlsTimePerMem := AutoBlockUni((8+a_index),72)
RemoveInString(NonSlsTimePerMem,,"C N R T")
;---
TotTimePerMem := AutoBlockUni((8+a_index),84)
RemoveInString(TotTimePerMem,,"C N R T")
;---
TotSgnOnTime := AutoBlockUni((8+a_index),96)
RemoveInString(TotSgnOnTime,,"C N R T")

PGThree .= InaTimePerMem a_tab TendTimePerMem a_tab RingTimePerMem a_tab NonSlsTimePerMem a_tab TotTimePerMem a_tab TotSgnOnTime "`n"
}
*/
;clipboard := PGO
msgbox % Joined
clipboard := Joined
return
;~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`~,~`
; ----------------------------------------------------------------------------------------------------------------------
; GetWindowInfo(HWND)
; Function:
;     Retrieves information about the specified window.
; Parameter:
;     HWND - A handle to the window whose information is to be retrieved.
; Return value:
;     If the function succeeds, the return value is an object containing the information.
;     If the function fails, the return value is zero.
; MSDN:
;     http://msdn.microsoft.com/en-us/library/ms632610(v=vs.85).aspx
; ----------------------------------------------------------------------------------------------------------------------
GetWindowInfo(HWND) {
   Static SizeOfWINDOWINFO := 60
   ; Struct WINDOWINFO
   VarSetCapacity(WINDOWINFO, SizeOfWINDOWINFO, 0)
   NumPut(SizeOfWINDOWINFO, WINDOWINFO, "UInt")
   If !DllCall("User32.dll\GetWindowInfo", "Ptr", HWND, "Ptr", &WINDOWINFO, "UInt")
      Return False
   ; Object WI
   WI := {}
   WI.WindowX := NumGet(WINDOWINFO,  4, "Int")                 ; X coordinate of the window
   WI.WindowY := NumGet(WINDOWINFO,  8, "Int")                 ; Y coordinate of the window
   WI.WindowW := NumGet(WINDOWINFO, 12, "Int") - WI.WindowX    ; Width of the window
   WI.WindowH := NumGet(WINDOWINFO, 16, "Int") - WI.WindowY    ; Height of the window
   WI.ClientX := NumGet(WINDOWINFO, 20, "Int")                 ; X coordinate of the client area
   WI.ClientY := NumGet(WINDOWINFO, 24, "Int")                 ; Y coordinate of the client area
   WI.ClientW := NumGet(WINDOWINFO, 28, "Int") - WI.ClientX    ; Width of the client area
   WI.ClientH := NumGet(WINDOWINFO, 32, "Int") - WI.ClientY    ; Height of the client area
   WI.Style   := NumGet(WINDOWINFO, 36, "UInt")                ; The window styles.
   WI.ExStyle := NumGet(WINDOWINFO, 40, "UInt")                ; The extended window styles.
   WI.State   := NumGet(WINDOWINFO, 44, "UInt")                ; The window status (1 = active).
   WI.BorderW := NumGet(WINDOWINFO, 48, "UInt")                ; The width of the window border, in pixels.
   WI.BorderH := NumGet(WINDOWINFO, 52, "UInt")                ; The height of the window border, in pixels.
   WI.Type    := NumGet(WINDOWINFO, 56, "UShort")              ; The window class atom.
   WI.Version := NumGet(WINDOWINFO, 58, "UShort")              ; The Windows version of the application.
   Return WI
}
star

Fri Feb 12 2021 17:55:09 GMT+0000 (UTC) https://autohotkey.com/board/topic/64242-create-additional-modifier-keys/

#auto #ahk #script
star

Sat Jan 09 2021 03:36:51 GMT+0000 (UTC) https://www.fastkeysautomation.com/forum/viewtopic.php?f

#ahk #fastkeys #script #hotkeys #macros
star

Thu Dec 24 2020 06:13:29 GMT+0000 (UTC) https://autohotkey.com/board/topic/61540-lib-string-based-table-manipulation-v028/

#ahk #script
star

Wed Dec 23 2020 10:22:27 GMT+0000 (UTC) https://autohotkey.com/board/topic/91798-getting-info-about-existence-of-all-gui-borders-and-their-thickness/

#ahk #scripts

Save snippets that work with our extensions

Available in the Chrome Web Store Get Firefox Add-on Get VS Code extension