avatar image

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

Login with username, password and session length
  • Saturday September 18, 2021, 2:44 pm
  • 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.

Messages - Nod5 [ switch to compact view ]

Pages: [1] 2 3 4 5 6 ... 45next
Find And Run Robot / Re: Powershell problems
« on: September 09, 2021, 09:56 AM »
If you have the new Windows Terminal you can also do
C:\Users\<username>\AppData\Local\Microsoft\WindowsApps\wt.exe powershell ssh

The upcoming version 1.5 of Everything will add a lot of features for dealing with file properties. Worth a look. Overview here https://www.voidtool....php?f=12&t=9788

N.A.N.Y. 2021 / Re: NANY 2021: MoveFileHere
« on: July 21, 2021, 02:55 AM »
I can confirm that I too had the exactly same issue, when accessing hwnd, the program would crash.

I seem to get error messages no matter what I do

I have still not been able to reproduce the crash so cannot yet explain what the root cause is. Here is a test .ahk version (requires AutoHotkey installed) with an attempted workaround. Can you test it and tell me if the error still happens?

Post New Requests Here / Re: [IDEA] hotkey/shortcut tracker
« on: May 29, 2021, 04:54 AM »
A few tips for AutoHotkey. Pick one organizing system for your hotkeys and stick to it. Some variants:
1. collect all hotkeys in a single .ahk file. You can then simply open the source and look up all hotkeys there. Search for "::" to look up hotkey definitions e.g. "^k::".
2. Separate files, but all hotkeys for one application or window in one .ahk
3. Separate files, but put the hotkey keys in the filename. For example "Firefox copy URL (ctrl+K).ahk". If consistently done then you can search for a hotkey with Everything or similar file search tool.

4. Use a plaintext search tool like ripgrep to instantly search the contents of a whole folder of .ahk source files.
5. Use this script to show a list of all currently running AutoHotkey files.

Good request, would be neat to have. Thinking out loud, without yet knowing the answer: I wonder if these could be used to toggle auto-hide on/off per monitor. Will investigate that further when I have more time.

I tried this AHK script but edited to specify the APPBARDATA structure's second member hWnd to target the taskbar on one of my two monitors (class: Shell_TrayWnd , Shell_SecondaryTrayWnd). But the change still applied to both taskbars. So no success thus far.

Perhaps Display Fusion creates its own individual taskbars that minimic the look and functionality of the native Windows 10 taskbar?

Is there some way to view a folders contents the same way, but with an alias to a path.
Here are three slightly different ways. In each start with
alias name: my_docs
alias regex: ^(my_docs|my_doc|my_do|my_d)$         (Not required, but faster. Modify as you want it.)

and then choose one of these
alias result: dosearch C:\users\someone\
alias result: restartsearch C:\users\someone\
alias result: dolaunch restartsearch C:\users\someone\

How they differ:
dosearch: Immediately list folder contents in FARR results.
restartsearch: Show result "restartsearch C:\users\someone" and wait for (Enter) to list folder contents.
dolaunch restartsearch: Immediately list folder contents in FARR results and show folder path in FARR search box.


I should also mention that if you're looking to paste a lot of different multiline strings then Lintalist is a good standalone tool. The landing page is a bit daunting but it is easy to use once you get going. There's a DC post for it here.

Is there an alias that works just like paste %WHATEVER% ... except it takes the contents of %WHATEVER% from a filepath on your local machine?
Not currently I think. FARR does have the built in alias command fileresults which reads the contents of a text file. But I don't recall any FARR method to use what it reads as a variable for a subsequent paste command.

We could ask mouser to add such a variable to FARR though. (It could then be named %lastfileresults%, similar to how the alias command appcap stores its return value in %lastappcap%)

In the meantime you can use an external helper script for this. Here is a simple AutoHotkey example
Code: Autohotkey [Select]
  1. ; read string from textfile and paste in active window
  2. FileRead, String, C:\file.txt
  3. Clipboard := String
  4. Send ^v

Save the script as ReadPaste.ahk and use an alias result line like this
read string from .txt and paste in active window | C:\folder\ReadPaste.ahk

A more advanced version could pass a regex pattern from the FARR alias as parameter to the script, for example to select another text file to read and paste from.

Also briefly tested the txt-as-md plugin on a test vault.
That's interesting. I see in https://forum.obsidi...txt-code-etc/1656/50 that there is discussion about two possible features.
1. Have Obsidian read .txt (and other plaintext) files as if markdown (apply markdown styling, and so on)
2. Have Obsidian read .txt as plain plaintext (no markdown styling)

The plugin does 1 AFAICT. But if this gets wings perhaps both 1 and 2 will get implemented, and maybe also a further feature
3. Have Obsidian read files with extension .NNN as some other, perhaps user customized plaintext format that differs from markdown. For example, AsciiDoc.
That is, users would in a config file tell Obsidian to treat filetypes {.md, .txt} as MarkDown, {.asciidoc, .adoc, .asc} as AsciiDoc, and so on.

Obsidian would expand to be a more general system-of-plaintext-notes editor/viewer. Compare to how VS Code is an editor/viewer for code in different programming languages. That ties in with our previous discussions here for/against the markdown format(s) and alternatives to it.

Save to FARR_resolve_alias_variables.ahk (with UTF-8 BOM encoding). Requires AutoHotkey

Will work in most cases, but might fail on complex alias text with e.g. escaped % characters.

Code: Autohotkey [Select]
  1. SetWorkingDir %A_ScriptDir%
  3. ; FARR_resolve_alias_variables.ahk
  5. ; by Nod5 on 2021-03-16
  7. ; A helper tool for FARR (Find And Run Robot) written in AutoHotkey
  9. ; Reads alias result from active FARR "Edit Group Alias" window
  10. ; and resolves (converts) FARR's UserVar variables to text values
  12. ; For example the variable "%uservar.Browser.Chrome%" is replaced
  13. ; with e.g. "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
  15. ; How to use:
  16. ; Run script and press F8 when FARR Options "Edit Group Alias" window is active
  17. ; A MsgBox shows the results lines with resolved UserVars
  19. ; Optional: uncomment lines near end of script to also
  20. ; - Copy text to clipboard
  21. ; - Write text to .txt file
  23. ; Discussion
  24. ;
  27. ; default path to FARR .ini file (edit this filepath if the .ini is in another location)
  28. vFarrIni := "C:\Users\" A_UserName "\Documents\DonationCoder\FindAndRunRobot\FindAndRunRobot.ini"
  29. return
  31. #IfWinActive, Edit Group Alias ahk_exe FindAndRunRobot.exe ahk_class TAliasForm
  32. F8::
  33.   if !FileExist(vFarrIni)
  34.   {
  35.     MsgBox % "Error: FindAndRunRobot.ini not found.`n`nEdit script and add correct path to it."
  36.     ExitApp
  37.   }
  38.   ; get text from results editbox
  39.   ControlGetText, vText, TMemo2, A
  41.   ; read UserVar data from FARR .ini
  42.   IniRead, vUserVars, % vFarrIni, ExtraSettings, UserVars, %A_Space%
  44.   ; split lines to array
  45.   aUserVars := StrSplit(vUserVars, ">n>")
  47.   ; object to store full variable/value pairs
  48.   aMap := Object()
  50.   For Key, vLine in aUserVars
  51.   {
  52.     vLine := TRim(vLine)
  54.     ; skip blank or comment line
  55.     if !vLine or (SubStr(vLine, 1, 2) = "//")
  56.       continue
  58.     ; [Section]
  59.     if RegExMatch(vLine, "^\[(.+)\]$", vMatch)
  60.       vSection := vMatch1
  62.     ; if variable line then get variable/value pair and add to map array
  63.     ; prefix variable name "uservar." and last found section name (if any)
  64.     if RegExMatch(vLine, "U)^(.+)=(.+)$", vMatch)
  65.     {
  66.       vVarName := "uservar." ( vSection ? vSection "." : "") vMatch1
  67.       vValue    := vMatch2
  68.       aMap["" vVarName] := vValue
  69.     }
  70.   }
  72.   ; resolve
  73.   For vVarName, vValue in aMap
  74.     vText := StrReplace(vText, "%" vVarName "%", vValue) ; replace all
  76.   ; show resolved text
  77.   MsgBox % vText
  79.   ; put on clipboard
  80.   ;Clipboard := vText
  82.   ; write to .txt file in this script's folder
  83.   ;FileAppend, % vText, % A_ScriptDir "\alias_resolved_" A_Now ".txt", UTF-8-RAW
  84. return
  87. ; ----------------------------
  88. ; notes of FARR User Variables (UserVar)
  89. ; ----------------------------
  90. ;   Used as variables in aliases
  91. ;   Set in FARR > Options > Lists > User Variables
  92. ;   Stored in FindAndRunRobot.ini
  93. ;     Default path C:\Users\<username>\Documents\DonationCoder\FindAndRunRobot\FindAndRunRobot.ini
  95. ; Format in Options "User Variables" pane:
  96. ; -----
  97. ; TopTest=C:\folder\test.exe
  98. ; [SectionName]
  99. ; VarName=Value
  100. ; VarName2=Value2
  101. ; // comment line
  102. ;
  103. ; [Browser]
  104. ; Chrome=C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
  105. ; Firefox=C:\b\firefox.exe
  106. ; -----
  107. ; Note: it is allowed to create variables above the first [Section]
  108. ; Note: comments must be on separate lines. Not allowed: VarName=Value //comment
  110. ; -----
  111. ; Format in FARR aliases:
  112. ; -----
  113. ;   %uservar.TopTest%
  114. ;   %uservar.SectionName.VarName%
  115. ;   %uservar.Browser.Chrome%
  116. ; -----
  118. ; -----
  119. ; Format in FindAndRunRobot.ini
  120. ; -----
  121. ; Stored as a single line, ">n>" is linebreak separator
  122. ; Example:
  123. ; UserVars=TopTest=C:\folder\test.exe>n>[SectionName]>n>VarName=Value>n>VarName2=Value2>n>// comment line>n>>n>[Browser]>n>Chrome=C:\Program Files (x86)\Google\Chrome\Application\chrome.exe>n>Firefox=C:\b\firefox.exe
  124. ; ----------------------------

I don't think FARR has that feature built in, but it would be a useful feature. I have AutoHotkey code that resolves the FARR user variables. I'l clean that up and post here as a helper tool for FARR when I have more time.

Here you go.
Neat! I will experiment with that.

Here you go.
That looks nice, seems functional for this request.

Off topic: I have come across Sciter a few times before but haven't made anything with it. I see you have a small test repo that transpiles some ahk to sciter here . Let me ask: do you know of some Sciter project with AutoHotkey interop, like what is available for Python ?

Neat idea, so I made an AutoHotkey version with a hotkey and also a command line mode for easy use from FARR.

Uses COM to get the focused file's path more reliably than sending keys to the context menu.
Uses SHGetSetFolderCustomSettings method which makes the new folder icon show immediately, see Microsoft doc.

Code: Autohotkey [Select]
  1. SetWorkingDir %A_ScriptDir%
  3. ; SetExplorerFolderIcon.ahk
  4. ; 2021-02-11
  5. ; by Nod5
  6. ; In Explorer press [F8] to set the focused file's first icon as parent folder icon
  7. ; -----------------------------------
  8. ; Default mode:
  9. ;   Select a file in Explorer and press [F8].
  10. ;   To close the script right click its tray menu icon and Exit.
  12. ; Command line mode:
  13. ;   Pass as parameter a HWND window handle to a specific Explorer window
  14. ;   to act on that window's focused file and parent folder.
  15. ;
  16. ; Optional: use this script from FARR (Find And Run Robot)
  17. ;   Create a FARR alias and use this as the result line (modify the path):
  18. ;   Set Explorer parent folder icon | C:\some\folder\SetExplorerFolderIcon.ahk %LASTHWND%
  19. ; -----------------------------------
  21. ; if parameter is Explorer HWND then act on that window and exit
  22. if (vHwnd := A_Args[1])
  23. {
  24.   if WinExist("ahk_class CabinetWClass ahk_id " vHwnd)
  25.     GetFocusedFileSetIcon(vHwnd)
  26. }
  27. ; else hotkey mode: create Explorer hotkey and await user action
  28. else
  29. {
  30.   Hotkey, IfWinActive, ahk_class CabinetWClass
  31.   Hotkey, F8, GetFocusedFileSetIcon
  32. }
  33. return
  35. GetFocusedFileSetIcon(vHwnd := "")
  36. {
  37.   vFile := ExplorerGetFocusedFilepath(vHwnd)
  38.   if FileExist(vFile)
  39.   {
  40.     SplitPath, vFile, , vFolder
  41.     SetFolderIcon(vFolder, vFile, 0)
  42.   }
  43. }
  46. ; function: ExplorerGetFocusedFilepath(vHwnd := "")  v210211
  47. ; return filepath of focused item in vHwnd (or active) Explorer window
  48. ExplorerGetFocusedFilepath(vHwnd := "")
  49. {
  50.   vHwnd := vHwnd ? vHwnd : WinActive("A")
  51.   if vHwnd and WinExist("ahk_class CabinetWClass ahk_id " vHwnd)
  52.     for Window in ComObjCreate("Shell.Application").Windows
  53.       if (Window.HWND = vHwnd)
  54.         ;
  55.         return vFile := Window.Document.FocusedItem.Path
  56. }
  59. ; function: SetFolderIcon() update Explorer folder icon in desktop.ini via SHGetSetFolderCustomSettings
  60. ; by teadrinker 2017-10-09
  61. ;
  62. ;
  63. SetFolderIcon(folderPath, iconPath, iconIndex)  {
  64.    static FCSM_ICONFILE := 0x10, FCS_FORCEWRITE := 0x2
  65.    if !A_IsUnicode  {
  66.       VarSetCapacity(WiconPath, StrPut(iconPath, "UTF-16")*2, 0)
  67.       StrPut(iconPath, &WiconPath, "UTF-16")
  68.    }
  69.    VarSetCapacity(SHFOLDERCUSTOMSETTINGS, size := 4*5 + A_PtrSize*10, 0)
  72.    NumPut(A_IsUnicode ? &iconPath : &WiconPath, SHFOLDERCUSTOMSETTINGS, 4*2 + A_PtrSize*8)
  73.    NumPut(iconIndex, SHFOLDERCUSTOMSETTINGS, 4*2 + A_PtrSize*9 + 4)
  74.    DllCall("Shell32\SHGetSetFolderCustomSettings", Ptr, &SHFOLDERCUSTOMSETTINGS, WStr, folderPath, UInt, FCS_FORCEWRITE)
  75. }
  77. ; -----------------------------------
  78. ; notes on desktop.ini files
  79. ; -----------------------------------
  80. ;
  81. ; "text file that allows you to specify how a file system folder is viewed."
  82. ; See also
  84. ; Format:
  85. ; -----
  86. ; [.ShellClassInfo]
  87. ; IconResource=C:\test\file.exe,0     ; <filepath, icon-index>
  88. ; -----
  89. ; To remove the custom folder icon delete desktop.ini
  91. ; If we just write the file then the new folder icon does not show immediately (must close/reopen Explorer)
  92. ; If we instead use SHGetSetFolderCustomSettings the new icon shows immediately.
  93. ; SHGetSetFolderCustomSettings also hides the desktop.ini file.
  94. ;
  95. ;
  96. ; AutoHotkey function: SetFolderIcon()
  97. ; by Teadrinker 2017-10-09
  98. ; -----------------------------------

N.A.N.Y. 2021 / Re: NANY 2021: MoveFileHere
« on: January 18, 2021, 01:21 PM »
I seem to get error messages no matter what I do
Ok, sorry that it isn't working. That error message points to the a step in the code that uses COM to loop over all open File Explorer windows. It seems to find a File Explorer window but crash when that window's handle is accessed. I don't know what is causing that error though, I'm not able to reproduce it on any PC I have tried. It is also a pretty commonly used method in AutoHotkey scripts and I haven't found similar errors reported in the AHK forums. Guessing: maybe related to Win 10 security permissions settings or a conflict with some other app or script that is running on your computer but not on mine. If you have another Win 10 computer at hand you could try it there, to help narrow down the issue.

N.A.N.Y. 2021 / Re: NANY 2021: MoveFileHere
« on: January 17, 2021, 10:31 AM »
Hi tomos, thanks for testing.

1) (minor) it doesnt recognise that the Download folder has been moved from it's default location (the new location is recognised correctly by File Explorer and Vivaldi). I edited the ini file to point to correct folder, so no real problem here

Yes, that's a design choice, to keep the code simple.

2) When I press F7, the name of the file to be moved shows as a tool tip type message (near the mouse pointer) but nothing is moved. If I click on the message I get this error:

After pressing F7 the user accepts the move with Enter, Space or Left Click. (To cancel Esc, F7 again or wait and it times out.) I documented that on GitHub, will add that to the first post here too.

The error you describe is a bug but I haven't found a way to reproduce it yet. It could be an issue with file permissions or Windows 10 security (partially) blocking the exe, hard to say.

If you have time to test more:
  • Change the source folder location in the .ini again, to something other than the browser's download folder. Does moving files from that folder work?
  • Try running the .ahk source file directly instead of the .exe (assuming you have AutoHotkey installed). Does that work?

Living Room / Re: Gadget WEEKENDS
« on: January 04, 2021, 04:07 AM »
So it worked quite well, with negligible perceived lag!
Great, thanks for the details.

I used USB Camera Pro - Connect EasyCap or USB WebCam
Good find. Though this is such a neat way to reuse old devices that I wish Google adds its own USB webcam functionality for it to Android. Also wishing Raspberry Pi OS came with some send-HDMI-over-USB functionality to make the converter hardware redundant.

Great job mouser - video, audio, the conversations!  :Thmbsup: Co-op games is a good niche to cover. I see that your videos already appear on some game pages on Board Game Geek,e.g. https://boardgamegee...-missions/videos/all , which I think is a good way for people to find you. What's the process for getting listed there - do you add each manually there or does BGG find and add them automatically?

Living Room / Re: Gadget WEEKENDS
« on: January 02, 2021, 02:52 PM »
I ordered the capture card and the converter cable, and they should be here on Sunday.  I'll try it and see how that goes before looking into any other options.
Keen to hear how well it works. Including which Android app to use - there are a few in the in Google Play and some appear to show ads.

Living Room / Re: Gadget WEEKENDS
« on: December 31, 2020, 05:24 AM »
I think you need to look for something that implements the WiFi Display protocol (MiraCast), for example MiracleCast.
Interesting! Have you used it? I hope these kind of tools evolve to open, near turnkey, inexpensive two-part wireless hardware kits: plug in a caster/sender device to the PC or Raspberry HDMI out port and plug in the receiver to either the HDMI in port on a display/TV or to USB OTG on an old android phone/tablet (maybe flashed with a custom ROM) and shazam: wireless screen over direct Wi-Fi. Pair them by temporarily connecting a cable from receiver to sender and press a hardware button. Bonus feature would be to allow multiple simultaneous receiver devices for one sender device.

I made a small tool for NANY2021, MoveFileHere, and it can be seen as an alternative method compared to parts of the Listary feature discussed in this thread. MoveFileHere helps a workflow where we make the browser always save/download files to a fixed Downloads folder and then use a hotkey quickly move the file to another File Explorer folder afterwards. Compare that to the workflow of quickly picking a custom folder for each download using Listary or the small SaveAsPathHelper script I made upthread to mimic some Listary features.

Living Room / Re: Gadget WEEKENDS
« on: December 30, 2020, 10:48 AM »
The little HDMI to USB webcam adapter looks very useful! Hackaday wrote about it recently too
with link to a video review that covers latency
Only problem seems to be that there are several similar products on Amazon et al but quality can be hit or miss.

N.A.N.Y. 2021 / NANY 2021: MoveFileHere
« on: December 30, 2020, 10:09 AM »
Application Name MoveFileHere
Version 2020-12-31
Short Description AutoHotkey tool to quickly move newest file from Downloads to the active File Explorer folder in Windows 10.
Supported OSes Windows 10
Web Page
Download Link Standalone EXE file
AHK source file


A very small hotkey tool that I use all the time, now released for NANY in case other people also often move files soon after downloading them and find the sequence Right click, Click "Show in folder", Ctrl+X, Alt+Tab Tab Tab, Ctrl+V way too long :). With MoveFileHere you press F7 to move the latest downloaded file to the active Explorer folder. The hotkey and folder can be changed in settings. Copy and rename MoveFileHere.exe to e.g. MoveFileHere2.exe to set up multiple hotkeys and folders.
See GitHub README for more details.

Note: antivirus tools may incorrectly flag the AutoHotkey compiled .exe file. You can always install AutoHotkey and then compile MoveFileHere yourself from the .ahk source file or simply run the .ahk source directly.

MoveFileHere helps a workflow where we make the browser always download to a fixed Downloads folder and then quickly move the file elsewhere afterwards. Compare that to the workflow of quickly picking a custom download/save folder for each download using Listary or the small SaveAsPathHelper script I quickly made to mimic some Listary features.

After pressing F7 the user accepts the move with Enter, Space or Left Click. To instead cancel the move press Esc, F7 again or wait 2 seconds.

Another issue is how well the editor/program integrates into a system where there are many types of files. Again I don't think any of them are great for doing this.
Yeah, there is a lot of friction to overcome there. I have an AutoHotkey script setup: I put no-markup filepaths or filenames in the plaintext notes. Later I select a whole or part of such a string (or put the cursor inside it) and press a hotkey. The script detects if there is a unique file anywhere matching the string pattern and takes action depending on filetype. E.g. open PDF in pdf viewer, open source code file in VS Code and so on. If multiple files match action alternatives are shown. If no file is matched alternatives to open up a file search in Everything or do a Google search are shown. Since this works on any text selection anywhere I can use the same approach across different apps, local or web based. For example I use it also in notes written in Google Docs, in effect links from Docs to the local filesystem. I considered making it a NANY tool this year but the thing is still evolving and is very tied to my own note taking setup and how I tend to use the target files, so difficult to make into a more general application yet. But I think this kind of customizable inbetween tool is the best option, since it is unlikely that any specific note taking app will also be a best fit for how you want to deal with various other types of files.

Pages: [1] 2 3 4 5 6 ... 45next