avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Friday May 20, 2022, 5:11 am
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - kunkel321 [ switch to compact view ]

Pages: [1] 2 3next
I have hundreds (thousands?) of sites bookmarked in Chrome.   Whenever I go to cull out the ones I don't need anymore, I either get distracted or overwhelmed and give up.   I was thinking that it would be great if there was a tool that would let me delete all the ones that haven't been used in 2 years, or 1 year.   It would be good if I could even just delete all the ones that no longer point to anything valid. 

Do you guys have any tips for this?

General Software Discussion / Tool to find where a hotkey press goes?
« on: February 03, 2022, 05:00 PM »
Ctrl+Alt+Shift+C stopped working in one of my apps.  I think it's because I probably assigned it to a different app and can't remember which..  :-\   Is there a tool that can "detect" which app is using the keypress?  I see some info about a tool called Spy++, but I think you have to have Visual Studio installed to use that.  Do you guys know of any other utilities to do this?  I'm on Win 10.

EDIT:  I figured it out...  I had an AHK thing set to that hotkey.

Insistently, I don't think it's possible to "see" where hotkeys go in Windows.  Nirsoft has an app that will tell you which hotkeys are free vs used.  It can't tell you what they are assigned to though.

I suspect that this is not even possible, but I thought I'd post anyway -- just in case. 

I use Chrome as my web browser.  Most of my bookmarks etc. are in my main personal profile. At work though, when people share links with me, I have to be in my Google account from work.   You switch profiles by clicking your avatar in the top/right of the Chrome window.   It's also possible to make Desktop links directly to each profile.  In my case the two link targets are:
C:\Program Files\Google\Chrome\Application\chrome_proxy.exe  --profile-directory=Default
C:\Program Files\Google\Chrome\Application\chrome_proxy.exe"  --profile-directory="Profile 1"

The problem is that, if you don't specify (by using one of the above links), Chrome will always open a link using the most recently-accessed profile.  So multiple times per day, I'll open a link at work that someone sends me, then Chrome will pop up in my personal profile and give me an error message that I don't have permission to access the file.  It's super-annoying! 

What I'd like is some way to "tell" Chrome that if I open an Outlook email link, use my work profile.  I guess that would need to be some kind of back-running utility that stays on all the time?  I don't know.  Maybe an Outlook add-in is what I need. 


Hi Mouser.  Feature Request for CHS:  Ability to assign a hotkey to the command "Stack operations > Paste entire stack as one text block."  Actually, maybe another hotkey for  "Stack operations > Paste entire stack using Tabs."

I noted you already have one for  "Stack operations > Set stack marker," so that's cool. 

Thanks for considering this!   

Clipboard Help+Spell / CHS not ignoring my application...
« on: December 15, 2021, 03:12 PM »
Hi Mouser,
I may have found a bug(?) 
I have a tool written in AutoHotkey that does some automated pasting from the clipboard.  I'm trying to make CHS ignore the application.   The actual executable is "MultTool.exe" but in Windows Task Manager, it shows up as "AutoHotkey Unicode 64-bit."  I put both of those and also "AutoHotkey.exe" in the exclusion list, then restared CHS.  No joy though...  The clipboard items still show up in my clip list...



EDIT:  I also added "AutoHotkey Unicode 64-bit.exe"  Still no joy.

N.A.N.Y. 2022 / NANY 2022 Entry -- WayText
« on: December 03, 2021, 08:21 AM »
NANY 2022 Entry Information

Application Name WayText
Version v5-17-2022
Short Description Enters boilerplate text into webforms and such.
Supported OSes Windows
Web Page Just this forum post
Download Link See bottom of post.
System RequirementsAny modern version of Windows should work.
Author See OP on the left.

WayText was made by a school psychologist who works for a public school district.  It was made to add a personalized touch to boilerplate text, by adding a student’s name and gender on-the-fly via simple replacement codes/placeholder that are embedded in the boilerplate text.  The tool is designed to be used in webforms. 

-Boilerplate text snippets that are customized for each student.
-Binary-to-nonbinary grammar fixing.
-Entries can easily be made or edited on-the-fly.
-Supports entering contact info for multiple schools/offices.
-Remembers your weekly building schedule.
-Remembers last-used student.
-Remembers and waits for active window.
-Windows admin account not required.
-Boilerplate components can be typed or pasted.
-Optional sub(mini)forms for further customization of text entries.
-Separate GUI-based settings tool.
-Puts clipboard content back when done.

-5-17-2022 Added an optional post-type delay, to wait for playback before sending Ctrl+V command to Windows.

Planned Features

*I should note that the production quality of the 43 min video is not great.  I might re-record it later.  Also note, the zipped folder contains a PDF of tips.  There are things in the PDF (WayTips.pdf) that are not covered in the video. 

No installation!  It is a portable application that runs right from its folder.

Using the Application
Download and unzip the folder, then double-click the WayText.exe file (Green icon with white H).  WayText.exe is actually a renamed copy of AutoHotkey.exe.  The exe reads from the same-named AHK file.  The AHK file contains the actual script.  Therefore, WayText has the same limitations as AutoHotkey, which acts like its “run time environment.”  The little green AutoHotkey icon will also appear in the Windows System Tray.  Right click that and choose “Exit” or “Reload.”  If changes are made to the settings, a reload/restart of WayText will be needed. 

In the wtSettings, at the bottom of the Activation Mode Tab, there is an option to “Start with Windows.”  If this is used, a startup link will be created in the Windows Startup folder.  This is the only thing that gets added to Windows.  Use the same setting to also remove the startup link.  Then right click the above-mentioned icon in the Windows System Tray.  Choose “Exit.”  Then delete the WayText folder. 

In the download there is a list of tips called WayTips.pdf. 
2-8-2022 update:  When I added the feature to allow WayText to stay in RAM and have its own hotkey, I also added the ability to have it start with Windows.  *But* I didn't want the GUI to popup every time Windows is started.  So I made it check for an active Window, and *not* pop up if there is no active Window.  Just now I realized that, if Windows is already running, and you try to activate it from the Desktop, it has that same effect of not popping up (because there is no active Window).  I consider this a feature and not a bug <wink>.  Really though, you'd never need to launch it from the Desktop, because there would never be an associated text field to type text in to.

Known Issues
Are there any issues that users should know about?
-Each boilerplate entry can have multiple components.  Each component can optionally by sent via “Type” or “Paste.”  If multiple simultaneous pastes occur in succession it will confuse Windows.  For this reason, there is a “post-paste delay.”  By default it is 100 milisecs, but this can be changed. 
-The above mention components are defined as key values in INI files.  Windows strips white spaces from the beginning and ending of string variables that are obtained from INI keys.  This can be an annoyance when creating boilerplate entry items. 
edit 1-4-2022:  -Due to the nature of Test information not lending itself to pasting, Paste commands are now ignored in test info boilerplate entries.

A couple more screenshots
(I just noticed the my real school names are in the new screenshots, but that's fine.  It's open info.)
Settings Window:

A few different colors:

Regarding 32 vs 64 bit Systems
I'm currently using it as a 64bit app.  This information was just added to the WayTips.pdf file:
The files “WayText.exe” and “wtSettings.exe” are the executable files that get double-clicked at first run.   They are not compiled versions of the corresponding (same-named) .ahk files.  They are merely renamed copies of AutoHotkey.exe.  More specifically, they are copies of the 64 bit “AutoHotkeyU64.exe.”  If a person has a 32 bit windows, they could obtain a copy of AutoHotkeyU32.exe and make two copies of it, renamed “WayText.exe” and “wtSettings.exe.”  That should work fine.

Post New Requests Here / Skommel's CapShift not working in Chrome
« on: November 19, 2021, 11:06 AM »
This is Skommel's excellent CapShift "one hour software."

He has the ahk file in his download, but below is a version with a bunch of MsgBox debug stops that I put.   I'm trying to figure out why it doesn't work in Chrome browser edit fields.  Works fine in Notepad.  I'm trying to use the conver-to-UPPER CASE feature from the popup.  In Chrome the text doesn't get converted.... CapShift merely pastes whatever is on the clipboard.  It seems there's a hickup at line 274 (Send, ^C).   The hickup is not consistent though... Sometimes the selected text does get copied to the clipboard, but the app still fails. 

Thoughts?  I just poseted this at the AutoHotkey forum too.

Code: Autohotkey [Select]
  1. ;CAPshift.ahk
  2. ;Slows down and extends the CapsLock key.
  3. ; Also slows down F1, Insert, NumLock and ScrollLock
  4. ;
  5. ;Hold for 0.5 sec to toggle caps lock on or off.
  6. ;Hold for 1 sec to show a menu that converts selected text to
  7. ; UPPER CASE, lower case, Title Case or iNVERT cASE.
  8. ;
  9. ;If the keyboard is idle for 120 seconds, CapsLock is turned off.
  10. ;
  11. ;Skrommel @2005
  14. applicationname=CAPshift
  16. Gosub,READINI
  17. Gosub,TRAYMENU
  19. WinGet,oldid,ID,A
  21. SetTimer,ACTIVEWIN,500
  23. {
  24.   Input,key,L1 T1 V,{LControl}{RControl}{LAlt}{RAlt}{LShift}{RShift}{LWin}{RWin}{AppsKey}{F1}{F2}{F3}{F4}{F5}{F6}{F7}{F8}{F9}{F10}{F11}{F12}{Left}{Right}{Up}{Down}{Home}{End}{PgUp}{PgDn}{Del}{Ins}{BS}{Capslock}{Numlock}{PrintScreen}{Pause}
  25.   If (ErrorLevel<>"Timeout")
  26.     time:=A_TickCount
  27.   If (A_TickCount-time>=capslockidle*1000)
  28.   {
  29.     If capslockidle>0
  30.     If (GetKeyState("CapsLock","T"))
  31.       SetCapsLockState,Off
  32.     time:=A_TickCount
  33.   }
  34. }
  35. Return
  39. WinGet,id,ID,A
  40. WinGetClass,class,ahk_id %id%
  41. If id=
  42.   id=%oldid%
  43. If class=Shell_TrayWnd
  44.   id=%oldid%
  45. If id=AutoHotkey
  46.   id=%oldid%
  47. oldid=%id%
  48. Return
  51. DELAY:
  52. hotkey=%A_ThisHotkey%
  53. If hotkey=CapsLock
  54.   Gosub,CAPSLOCK
  55. Else
  56.   Gosub,THEREST
  57. Return
  60. THEREST:
  61. counter=500
  62. {
  63.   If showstatus=1
  64.     ToolTip,%hotkey% in %counter% ms
  65.   Sleep,100
  66.   counter-=100
  67.   GetKeyState,state,%hotkey%,P
  68.   If state=U
  69.     Break
  70. }
  71. If showstatus=1
  72. If counter=0
  73. If hotkey=F1
  74.   Send,{%hotkey%}
  75. Else
  76. {
  77.   GetKeyState,state,%hotkey%,T
  78.   If state=U
  79.   {
  80.     If hotkey=NumLock
  81.       SetNumLockState,On
  82.     If hotkey=ScrollLock
  83.       SetScrollLockState,On
  84.     If hotkey=Insert
  85.       Send,{%hotkey%}
  86.     If showstatus=1
  87.       ToolTip,%hotkey% On
  88.   }
  89.   Else
  90.   {
  91.     If hotkey=NumLock
  92.       SetNumLockState,Off
  93.     If hotkey=ScrollLock
  94.       SetScrollLockState,Off
  95.     If hotkey=Insert
  96.       Send,{%hotkey%}
  97.     If showstatus=1
  98.       ToolTip,%hotkey% Off
  99.   }
  100.   SetTimer,TOOLTIPOFF,On
  101. }
  102. KeyWait,%hotkey%
  103. Return
  106. CAPSLOCK:
  107. counter=1000
  108. Loop,10
  109. {
  110.   If showstatus=1
  111.     ToolTip,%hotkey% in %counter% ms
  112.   Sleep,100
  113.   counter-=100
  114.   If counter=500
  115.     SoundPlay,%SYSTEMROOT%\Media\ding.wav
  116.   GetKeyState,state,%hotkey%,P
  117.   If state=U
  118.     Break
  119. }
  120. If showstatus=1
  121. If counter=0
  122. Else
  123. If counter<600
  124. {
  125.   GetKeyState,state,%hotkey%,T
  126.   If state=D
  127.     Gosub,OFF
  128.   Else
  129.     Gosub,ON
  130. }
  131. Return
  134. status=
  135. key=Insert
  136. Gosub,GETSTATE
  137. key=CapsLock
  138. Gosub,GETSTATE
  139. key=NumLock
  140. Gosub,GETSTATE
  141. key=ScrollLock
  142. Gosub,GETSTATE
  143. If showstatus=1
  144.   TrayTip,Status,%status%,10
  145. Return
  148. GETSTATE:
  149. GetKeyState,state,%key%,T
  150. If state=D
  151.   status=%status%%key%`n
  152. Return
  155. Menu,convert,Add
  156. Menu,convert,Delete
  157. Menu,convert,Add,CAPshift,TOGGLE
  158. Menu,convert,Add,
  159. Menu,Convert,Add,CapsLock &On,On
  160. Menu,Convert,Add,&CapsLock Off,Off
  161. Menu,convert,Add,
  162. Menu,convert,Add,&UPPER CASE,UPPER
  163. Menu,convert,Add,&lower case,LOWER
  164. Menu,convert,Add,&Title Case,TITLE
  165. Menu,convert,Add,&iNVERT cASE,INVERT
  166. Menu,convert,Add,&RaNDoM CaSE,RANDOM
  167. Menu,convert,Add,Replace user &chars,REPLACE
  168. Menu,convert,Add,
  169. Menu,convert,Add,&Settings...,SETTINGS
  170. Menu,convert,Add,&About...,ABOUT
  171. Menu,convert,Add,E&xit,EXIT
  172. Menu,convert,Default,CapShift
  173. Menu,convert,Show
  174. Return
  177. TRAYMENU:
  178. Menu,Tray,NoStandard
  179. Menu,Tray,DeleteAll
  180. Menu,Tray,Add,CAPshift,TOGGLE
  181. Menu,Tray,Add,
  182. Menu,Tray,Add,CapsLock &On,On
  183. Menu,Tray,Add,&CapsLock Off,Off
  184. Menu,Tray,Add,
  185. Menu,Tray,Add,&UPPER CASE,UPPER
  186. Menu,Tray,Add,&lower case,LOWER
  187. Menu,Tray,Add,&Title Case,TITLE
  188. Menu,Tray,Add,&iNVERT cASE,INVERT
  189. Menu,Tray,Add,&RaNDoM CaSE,RANDOM
  190. Menu,Tray,Add,Replace user &chars,REPLACE
  191. Menu,Tray,Add,
  192. Menu,Tray,Add,&Settings...,SETTINGS
  193. Menu,Tray,Add,&About...,ABOUT
  194. Menu,Tray,Add,E&xit,EXIT
  195. Menu,Tray,Default,CapShift
  196. Menu,Tray,Tip,%applicationname%
  197. Return
  201. Return
  205. If showstatus=1
  206. SetTimer,TOOLTIPOFF,Off
  207. Return
  210. ON:
  211. If showstatus=1
  212.   ToolTip,CapsLock On
  213. SetTimer,TOOLTIPOFF,On
  214. Return
  217. OFF:
  218. If showstatus=1
  219.   ToolTip,CapsLock Off
  220. SetTimer,TOOLTIPOFF,On
  221. Return
  224. TOGGLE:
  225. GetKeyState,state,CapsLock,T
  226. If state=D
  227. {
  228.   If showstatus=1
  229.     ToolTip,CapsLock Off
  230. }
  231. Else
  232. {
  233.   If showstatus=1
  234.     ToolTip,CapsLock On
  235. }
  236. SetTimer,TOOLTIPOFF,On
  237. Return
  240. CUT:
  241. oldclipboard:=ClipboardAll
  243. MsgBox clp just saved to oldClp which is %oldClipboard%  ;####################################debug
  245. WinActivate,ahk_id %id%
  246. WinWaitActive,ahk_id %id%,,1
  247. WinGetClass,class,ahk_id %id%
  248. If class In Progman,WorkerW,Explorer,CabinetWClass
  249.   Send,{F2}
  250. Sleep,500
  251. Send,^c
  252. string=%clipboard%
  254. msgbox bottom of CUT sub`nstr is %string%  ;####################################debug
  256. Return
  259. PASTE:
  260. WinActivate,ahk_id %id%
  261. WinWaitActive,ahk_id %id%,,1
  263. MsgBox now at paste sub and str is %string% ;####################################debug
  265. If class In Progman,WorkerW,Explorer,CabinetWClass
  266.   Send,{F2}
  267. clipboard=%string%
  269. MsgBox just before send`nclipbrd is %Clipboard%`noldClipbrd %oldclipboard% ;####################################debug
  271. Send,^v
  272. Clipboard:=oldclipboard
  273. oldclipboard=
  274. Return
  277. UPPER:
  279. MsgBox top of upper sub  ;####################################debug
  281. Gosub,CUT
  283. MsgBox before stringUpper str is %string% ;####################################debug
  285. StringUpper,string,string
  287. MsgBox after stringUpper str is %string%  ;####################################debug
  289. Gosub,PASTE
  290. If showstatus=1
  291.   ToolTip,Selection converted to UPPER CASE
  292. SetTimer,TOOLTIPOFF,On
  293. Return
  296. LOWER:
  297. Gosub,CUT
  298. StringLower,string,string
  299. Gosub,PASTE
  300. If showstatus=1
  301.   ToolTip,Selection converted to lower case
  302. SetTimer,TOOLTIPOFF,On
  303. Return
  306. TITLE:
  307. Gosub,CUT
  308. StringLower,string,string,T
  309. Gosub,PASTE
  310. If showstatus=1
  311.   ToolTip,Selection converted to Title Case
  312. SetTimer,TOOLTIPOFF,On
  313. Return
  316. INVERT:
  317. Gosub,CUT
  318. StringLen,length,string
  319. Loop,%length%
  320. {
  321.   StringLeft,char,string,1
  322.   If char Is Upper
  323.     StringLower,char,char
  324.   Else
  325.   If char Is Lower
  326.     StringUpper,char,char
  327.   StringTrimLeft,string,string,1
  328.   string=%string%%char%
  329. }
  330. If showstatus=1
  331.   ToolTip,Selection converted to iNVERTED cASE
  332. SetTimer,TOOLTIPOFF,On
  333. Gosub,PASTE
  334. Return
  337. Gosub,CUT
  338. StringLen,length,string
  339. Loop,%length%
  340. {
  341.   StringLeft,char,string,1
  342.   Random,random,1,2
  343.   If random=1
  344.     StringLower,char,char
  345.   Else
  346.     StringUpper,char,char
  347.   StringTrimLeft,string,string,1
  348.   string=%string%%char%
  349. }
  350. If showstatus=1
  351.   ToolTip,Selection converted to RaNDoM CaSE
  352. SetTimer,TOOLTIPOFF,On
  353. Gosub,PASTE
  354. Return
  357. REPLACE:
  358. Gosub,CUT
  359. Loop,%swapcount%
  360. {
  361.   from:=swap_%A_Index%_1
  362.   to:=swap_%A_Index%_2
  363.   StringReplace,string,string,%A_Space%,.space.,All
  364.   StringReplace,string,string,%A_Tab%,.tab.,All
  365.   StringReplace,string,string,`r,.return.,All
  366.   StringReplace,string,string,`n,.newline.,All
  367.   StringReplace,string,string,`,,.comma.,All
  368.   StringReplace,string,string,`;,.semicolon.,All
  369.   StringReplace,string,string,%from%,%to%,All
  370.   StringReplace,string,string,.space.,%A_Space%,All
  371.   StringReplace,string,string,.tab.,%A_Tab%,All
  372.   StringReplace,string,string,.return.,`r,All
  373.   StringReplace,string,string,.newline.,`n,All
  374.   StringReplace,string,string,.comma.,`,,All
  375.   StringReplace,string,string,.semicolon.,`;,All
  376. }
  377. If showstatus=1
  378.   ToolTip,Selection's User chars replaced
  379. SetTimer,TOOLTIPOFF,On
  380. Gosub,PASTE
  381. Return
  384. ABOUT:
  385. Gui,99:Margin,20,20
  386. Gui,99:Add,Picture,xm Icon1,%applicationname%.exe
  387. Gui,99:Font,Bold
  388. Gui,99:Add,Text,x+10 yp+10,%applicationname% v1.7
  389. Gui,99:Add,Text,y+10,CAPshift slows down and extends the CapsLock key.
  390. Gui,99:Add,Text,y+5,It also slows down F1, Insert, NumLock and ScrollLock.
  391. Gui,99:Add,Text,y+10,- Hold down CapsLock for .5 sec to toggle CapsLock on or off.
  392. Gui,99:Add,Text,y+10,- Hold for 1 sec to show a menu that converts selected text to
  393. Gui,99:Add,Text,y+5,UPPER CASE, lower case, Title Case, iNVERT cASE, RaNDoM CaSE  
  394. Gui,99:Add,Text,y+5,or to Replace user defined chars as defined in CAPshift.ini.
  395. Gui,99:Add,Text,y+10,- If the keyboard is idle for 120 seconds, CapsLock is turned off.
  397. Gui,99:Add,Picture,xm y+20 Icon5,%applicationname%.exe
  398. Gui,99:Font,Bold
  399. Gui,99:Add,Text,x+10 yp+10,1 Hour Software by Skrommel
  400. Gui,99:Add,Text,y+10,For more tools, information and donations, please visit
  401. Gui,99:Font,CBlue Underline
  402. Gui,99:Add,Text,y+5 G1HOURSOFTWARE,
  404. Gui,99:Add,Picture,xm y+20 Icon7,%applicationname%.exe
  405. Gui,99:Font,Bold
  406. Gui,99:Add,Text,x+10 yp+10,DonationCoder
  407. Gui,99:Add,Text,y+10,Please support the contributors at
  408. Gui,99:Font,CBlue Underline
  409. Gui,99:Add,Text,y+5 GDONATIONCODER,
  411. Gui,99:Add,Picture,xm y+20 Icon6,%applicationname%.exe
  412. Gui,99:Font,Bold
  413. Gui,99:Add,Text,x+10 yp+10,AutoHotkey
  414. Gui,99:Add,Text,y+10,This tool was made using the powerful
  415. Gui,99:Font,CBlue Underline
  416. Gui,99:Add,Text,y+5 GAUTOHOTKEY,
  418. Gui,99:Show,,%applicationname% About
  419. hCurs:=DllCall("LoadCursor","UInt",NULL,"Int",32649,"UInt") ;IDC_HAND
  420. OnMessage(0x200,"WM_MOUSEMOVE")
  421. Return
  424.  Run,,,UseErrorLevel
  425. Return
  428.  Run,,,UseErrorLevel
  429. Return
  432.  Run,,,UseErrorLevel
  433. Return
  435. 99GuiClose:
  436.  Gui,99:Destroy
  437.   OnMessage(0x200,"")
  438.   DllCall("DestroyCursor","Uint",hCur)
  439. Return
  441. WM_MOUSEMOVE(wParam,lParam)
  442. {
  443.   Global hCurs
  444.   MouseGetPos,,,,ctrl
  445.   If ctrl in Static13,Static17,Static21
  446.     DllCall("SetCursor","UInt",hCurs)
  447.   Return
  448. }
  449. Return
  454. SETTINGS:
  455. Gosub,READINI
  456. Run,CAPshift.ini
  457. Return
  460. READINI:
  461. IfNotExist,CAPshift.ini
  462. {
  463.   inifile=;CAPshift.ini
  464.   inifile=%inifile%`n`;[Settings]
  465.   inifile=%inifile%`n`;capslockidle=120    `;0-999  0=Off  Seconds to wait before turning off CapsLock when the keyboard is idle
  466.   inifile=%inifile%`n`;showstatus=1        `;0,1    0=Hide  1=Show  Hide or show the status windows
  467.   inifile=%inifile%`n`;delaycapslock=1     `;0,1    0=Ignore CapsLock  1=Delay F1
  468.   inifile=%inifile%`n`;delayf1=1           `;0,1    0=Ignore F1  1=Delay F1
  469.   inifile=%inifile%`n`;delayinsert=1
  470.   inifile=%inifile%`n`;delayscrolllock=1
  471.   inifile=%inifile%`n`;delaynumlock=1
  472.   inifile=%inifile%`n`;
  473.   inifile=%inifile%`n`;ae=æ                `;Chars to replace=Chars to replace with
  474.   inifile=%inifile%`n`;oe=ø                `;Special characters:
  475.   inifile=%inifile%`n`;aa=å                `;  .space. .tab. .return. .newline. .comma. .semicolon.
  476.   inifile=%inifile%`n`;AE=Æ
  477.   inifile=%inifile%`n`;OE=Ø
  478.   inifile=%inifile%`n`;AA=Å
  479.   inifile=%inifile%`n`;AA=Å
  480.   inifile=%inifile%`n`;.return..newline..return..newline.=  ;Removes empty lines
  481.   inifile=%inifile%`n
  482.   inifile=%inifile%`n[Settings]
  483.   inifile=%inifile%`ncapslockidle=120
  484.   inifile=%inifile%`nshowstatus=1
  485.   inifile=%inifile%`ndelaycapslock=1
  486.   inifile=%inifile%`ndelayf1=1
  487.   inifile=%inifile%`ndelayinsert=1
  488.   inifile=%inifile%`ndelayscrolllock=1
  489.   inifile=%inifile%`ndelaynumlock=1
  490.   inifile=%inifile%`n
  491.   inifile=%inifile%`nae=æ
  492.   inifile=%inifile%`noe=ø
  493.   inifile=%inifile%`naa=å
  494.   inifile=%inifile%`nAE=Æ
  495.   inifile=%inifile%`nOE=Ø
  496.   inifile=%inifile%`nAA=Å
  497.   FileAppend,%inifile%,CAPshift.ini
  498.   inifile=
  499. }
  500. IniRead,capslockidle,CAPshift.ini,Settings,capslockidle
  501. IniRead,showstatus,CAPshift.ini,Settings,showstatus
  502. IniRead,delaycapslock,CAPshift.ini,Settings,delaycapslock
  503. IniRead,delayf1,CAPshift.ini,Settings,delayf1
  504. IniRead,delayinsert,CAPshift.ini,Settings,delayinsert
  505. IniRead,delayscrolllock,CAPshift.ini,Settings,delayscrolllock
  506. IniRead,delaynumlock,CAPshift.ini,Settings,delaynumlock
  508. If delaycapslock=1
  509.   Hotkey,$CapsLock,DELAY
  510. If delayf1=1
  511.   Hotkey,$F1,DELAY
  512. If delayinsert=1
  513.   Hotkey,$Insert,DELAY
  514. If delaynumlock=1
  515.   Hotkey,$NumLock,DELAY
  516. If delayscrolllock=1
  517.   Hotkey,$ScrollLock,DELAY
  519. swapcount=0
  520. Loop,Read,CAPshift.ini
  521. {
  522.   If char=`;
  523.     Continue
  524.     Continue
  525.   If A_LoopReadLine Contains capslockidle=,showstatus=,delaycapslock=,delayf1=,delayinsert=,delayscrolllock=,delaynumlock=
  526.     Continue
  527.     Continue
  528.   swapcount+=1
  529.   StringSplit,swap_%swapcount%_,A_LoopReadLine,=
  530. }
  531. Return

General Software Discussion / USH-II SD Card compatible with my HP?
« on: February 27, 2021, 09:24 AM »
This is a 'hardware' question rather than a 'software' question. 

My work laptop is an HP Pavilion.  This one, I think: PAVILION 13 SERIES PAVILION 13-S120NR X360.  It has a measly 100GB hard drive.   I'm thinking of getting an SD Card to use for extra space.  They have Ultra High Speed ones now that are rated for 300mbs/sec.  Does anyone know how to check if my SD slot is even designed for UHS use?   The HP site is here:  https://support.hp.c...ument/c04790206#AbT0 It just says, "Multi-Format Digital Media Card Reader."  If it was a high speed one, it would probably say so--yes? 

EDIT:  Additional info:

SCS IVDiskSan Disk   SD8S BAT128G1122Z233
SCS KDskSan Disk   SD8S B AT128G1122
SC SI \Disk San Disk_
SCSINSan Disk   SD8S BAT128G1122Z
San Disk   S D8SBAT128G1122Z
Gen Disk

I have a Portable setup on my work computer (not sure if that's relevant to the request).  As seen in the back window, I have a PortableApps folder.  For the most part, there is a subfolder for each portable app.  And--mostly--each folder has an exe in it of the application, for example Calibre Portable in the front window.  I was simply going through and manually customizing the folder by navigating to the exe file and choosing the first image that is compiled in it.  That way, the folder has the same image as the application in it.  I figured that could be automated with AHK, or some other language...

I guess the rules would be:
-look inside of folder for the first exe file found.
-look for first icon resource in that found exe file.
-set the folder's icon to be that icon resouce.

snack idea 2-9-2021.png

Any takers?   :P

I have an older version that I've been using for years with no problem.  The latest version from their website is apparently blacklisted by Chrome and be Norton.  Won't even download it.  If I try to download it, it just disappears.  Has anyone else had success getting the latest version? 

The tech department at my new school district (employer) won't let staff be 'administrators' of their computers.  I'm trying to talk them into elevating me, but I don't think that they will.   I'm wondering how other people cope with this?  It's super annoying.  I can't run trouble-shooters, or access certain system areas.  Worse is that I can't install many of the various computer programs I've come to rely on over the years. 

Fortunately, I am able to use a USB stick.   I've made a  folder at C:/Portables and put lots of "portable" (i.e. no-install) apps there, moving them over using the USB stick.  Mouser's stuff seems to all be portable which is a life saver.  Also I found NirSoft's "AdvancedRun" which has helped me install a couple of things that wouldn't install otherwise.  I google searched how to make an app into a portable app.  There doesn't seem to be any good solutions out there.  Everything listed was corporate-level stuff. 

Do you guys (and gals) have any tips for me to survive in this new non-elevated world? 

Clipboard Help+Spell / Request: minimalist popup menu
« on: July 18, 2020, 10:06 AM »
I may have requested this years ago... Not sure.  Under the Quick Paste group is a ton of extra tools.  I have indeed used many of them over the years, but 99.9% of the time I don't use them.  Please consider the option to put all of these tools (see red X in screenshot) into a single sub-menu.  That way I wouldn't see them every time I launch the Quick Paste menu. 

-Thanks for considering.


Clipboard Help+Spell / Error EX11
« on: July 17, 2020, 08:34 PM »
Wow I've really broken CHS this time! 

I even uninstalled and reinstalled it and also did the "Verify, Repair, Optimize" too.  Doesn't seem to do this if I copy files, but copying text or images results in the below error.  If I then open CHS (quick popup or main window) the "Excerpt" of the text clips are indeed empty.  If I "Reestablish clipboard chain" then the error goes away, but immediately comes back. 

Note my post from this morning, where I "Restored" some clips from a month ago.  I'm not sure if it matters, but I had a spinning drive then, and an SSD now (irrelevant?)  I'm using Clipboard Help+Spell v2.46.1 on Win 10.

Holly moly.. Now my Desktop image just went black...  What the heck is going on with my system???!!!!

EDIT:  Okay, I think I fixed it.  The way I fixed it was (1) exit CHS, (2) delete the entire folder (C:\Users\steve\Documents\DonationCoder\Clipboard Help+Spell), then (3) restart CHS and let it rebuild the folders.  Of course I lost my settings, but that's okay.  I didn't have very many anyway.   ...In retrospect:  As posted here https://www.donation....msg439665#msg439665 I was messing about with the proprietary CHS database files.   I suspect that I accidentally deleted or changed one of them(?)  IDK.  I'll post a reply to this message if the EX11 error ever happens again.

Error EX11: TableClips: Field 'ExtendedData' not found

Clipboard Help+Spell / Maybe auto-back up as .csv?
« on: July 17, 2020, 12:29 PM »
Hi Mouser.    Today was the first time that I actually tried to restore from a backup.  I had a big script project before I upgraded my laptop with an SSD.  I forgot to save the script file, but I thought it might be in my CHS database.  I tried to import from the CHS backups that I did save before wiping my hard drive.  It didn't really work (see screenshot).


Anyway, no big deal.  But I see that if I do a manual export, it gets saved as a .csv file...  Why not have that be the standard file type for periodic CHS automatic backups?   As I look in my CHS directory, I see .bkp, .bbk, .blb, .bdk, .ibk, and .idx file types, but I can't seem to do anything with them. 

Anyway -- I hope everyone is staying healthy out there!   8)

EDIT:  I just found the setting for importing a back up.   :Thmbsup:

Living Room / Any school psychologists out there?
« on: January 22, 2017, 01:10 PM »
Just curious. I've put together some coolish Autohotkey tools.   Thought about sharing for NANY, but they are so specific to my job, that I doubt they'd be useful for anyone else. 

General Software Discussion / VBA for MS Office Web apps?
« on: January 22, 2017, 01:07 PM »
Is anyone here familiar with scripting/automating Office 365 (i.e. the online versions)?   I'd like to automate the creation of Outlook calendar items.  With the installed version of Office, you can actually do it with Command Line options such as C:\Program Files (x86)\Microsoft Office\Office16\OUTLOOK.EXE /c ipm.appointment then navigate the GUI via Outlook's built in hotkeys.  I Googled, and it does appear that there is an "Object Model" for the Office Web apps...  So presumably this is possible. 

General Software Discussion / What website has the fewest files?
« on: June 01, 2016, 01:14 PM »
Hi Folks,
I'm somewhat techy, but website building is something I know very little about...  Years ago, I got a lifetime membership to  It includes a free (though small) place for hosting a website.  Over the years I've used several different ones.  Remember Geocities?  LOL.  There was also a nice freebie from Microsoft, but they discontinued the service.  Google has one, but whenever I get involved with a Google thing, they bloody discontinue it.  Anyway, NoNags is still going strong.  In the past I used WebsiteX5 (shows up free on the interwebs every now and then).  Now though, it appears that NoNags does not support FTP uploading, which is what WebsiteX5 uses.  I can upload the individual files to NoNags, but for even the smallest site (3 different pages) there are 71 different files and folders that need to be individually uploaded!  That's not really feasible. 

So the question:  What free tool can I use that will generate the fewest resource files?  I don't mind having a one-page site, if that makes things smaller...

Living Room / Is Excel the most dangerous software in the world?
« on: November 11, 2015, 06:13 PM »
I'm a major Excel nut, (and someone who lost a load of equity in his home since 2008) so I found this interesting. 
An excerpt from the book: Dashboards for Excel (Jordan Goldmeier & Purnachandra Duggirala)

No, really, it’s possible that Microsoft’s Excel is the most dangerous software on the planet.
      —Tim Worstall in Forbes Magazine
Worstall is referring to JPMorgan’s use of Microsoft Excel and its potential contribution to the global recession that began in 2008. The story is a familiar one. JPMorgan, one of the big banks, required a new way for their chief investment officer to model the risk associated with their portfolio of collateralized debt obligations (CDOs) . CDOs, as you might recall, are those complex financial instruments that are comprised of a bundle of mortgages used to speculate and manage the risk for default. In the end, many homeowners eventually defaulted on their mortgages. Yet, JPMorgan’s model had not captured this at all. According to an internal report by JPMorgan, their model contained an error that “likely had the effect of muting volatility by a factor of two and of lowering the VaR [value at risk].” What had happened? How could one of the biggest banks employ a model that was so absent from reality? According to the report, their model was “operated through a series of Excel spreadsheets, which had to be completed manually, by a process of copying and pasting data from one spreadsheet to another.” The error was generated when “After subtracting the old rate from the new rate, the spreadsheet divided by their sum instead of their average, as the modeler had intended.” Worstall, like many others, blames Excel. It’s too insecure, and there’s no audit trail, he contends. Its flexibility is its greatest strength and Achilles heel. His argument isn’t a new one, of course. Without proper internal governance and procedures regarding archiving, getting lost in a nightmare of error-ridden spreadsheets and mixed-up versions is a real possibility. But is that really what happened in the case of JPMorgan? Are more audit controls needed? I’m not so sure.

General Software Discussion / Request: Deepdream frontend.
« on: July 10, 2015, 12:31 PM »
A couple weeks ago, I posted about the new trippy artform from Google

Now Google has opensourced the project.  All of the needed components are listed on the blogpost here:
And it's all open stuff.

Unfortunately it's still pretty far beyond the technical abilities of most of us non-programmer types...

A couple people have tried to make web-based front-ends for the technology:
But as you might guess, the ques are impossibly long...

Is it possible for one of you gurus to make a desktop version on this?  Or maybe it's not even possible because of the need to be online with Google Images...  IDK.

Thots?   :-*

Hi All,
I'm wanting to teach my 3-year-old daughter to use a computer.  She is able to use the touchscreen on my Kindle Fire HD just fine.  And she has seen me use the mouse on our Vista PC.  She is a bit intimidated by it though.    I need a game or a learning app that is really really simple and has some kind of "learn to use your mouse" tutorial...  Any ideas of free or really inexpensive ones?

I saw a post about this on reddit.   Pretty cool.
Apparently the people at Google took the Google Image search picture recognition technology and pointed it at itself in some kind of feedback loop or some kind of thing...  I don't really understand it, but the results distinctively remind me of when I tried dropping acid back in the 1980s.  (Not recommended kids).  Anyway, the gallery is here:
An extra trippy thing I noticed is that parts of the edges of some of the images "overlap" as in a repeating tilable pattern.  Here are a couple of screenshots as examples of the partial overlapping.

This is one of my faves:

Hi Mouser,  I've been using the Modify Format/Case features of CHS quite a bit lately.   
I'm not sure if it is something you are working on lately; but here are some feature ideas for your list   :D

I've found that it would be nice if I could dictate which rules get applied first.  For example in one of my presets I might like to "Add Stuff" to the beginning and ending of each line before I "Find and Replace" content; but other times I might want to do it after.  I've been trying to think about what the GUI for this would look like....   
[will do an "edit" to this post later]

Screenshot Captor / Please try these masks...
« on: March 25, 2015, 12:23 PM »
Can someone else please try this...
I've zipped two mask/frame combos.
They are ones I made a long time ago https://www.donation...ex.php?topic=29947.0 and they did work back then.
After not even messing with the feature for 3 years, I'm wanting to make myself some "torn edge" effects.

I think I'm doing everything correctly, but I'm getting an error message.  Oddly, the mask/frame of one hand holding a round screenshot is working perfectly, but the one with two hands holding a rectangle is causing the following error message:

Access violation at address 00728C6C in module 'ScreenshotCaptor.exe'. Read of address 00000000.

The 'frame' part actually is getting applied, but the mask (handholding2.png.mask) is not, so I assume that it is the mask causing the crash....  
Any ideas?   Thanks All   :)

EDIT:  My bad...  I posted about this same problem in 2013 and had completely forgoten....   :-[
The secret is for the mask to be named "name.png.maskpng"

FYI for Mouser: the help file still lists the old rules. 

Hi Mouser,
I hope all is well with you.  I haven't had a chance to tinker with advanced CHS stuff in a while.  (Though CHS and SSC both get used A LOT on my work puter).

Anyhow, Am tinkering now...  I'm not sure if this is even feasible, but I'd love if, from the "Modify Case/Tools" and/or the Main Window text edit area, I could select a rectangular portion of text (i.e. the same columns across multiple congruent rows...)

Here's a screenshot from Word...  It you hold down <Alt> and click-n-drag with the mouse, you get the following:

My overall goal is to get from "before" to "after" as in the image below:

If I copy the column of numbers, CHS will "Prefix" and "Suffix" the parts perfectly, but unfortunately MS Word won't let you paste into a rectangular selection...  If CHS were to handle this, I could copy the whole table from Word, do my thing, then paste it back in...   


Nobody at home or work will appreciate this thing I did.  
I'll just leave it here.   :D

Excel file attached...
EDIT:  There's not macros...  And guaranteed no maljunk. :)

Pages: [1] 2 3next