avatar image

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

Login with username, password and session length
  • January 20, 2019, 10:56 AM
  • Proudly celebrating 13 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 ... 37next
N.A.N.Y. 2019 / Re: NANY 2019 Release: SCURLed
« on: January 10, 2019, 07:04 AM »
Nice work skwire!

Is it by design that the filename of .url files cannot be edited (that editbox is grayed out when I run the program)?

Find And Run Robot / Re: Open alias/group in notepad++
« on: January 10, 2019, 06:05 AM »
a way to edit aliases in Notepad++ without having to go through options windows. And of course have FARR reload edited aliases.

Ok, here is a quick fix to do that.
Caveats: you'll have to manually edit xml formatted data and you won't be able to disable/enable aliases but can edit/create/remove.

Step 1: create a new FARR alias
Change "<username>" and perhaps the path strings below to match those on your PC

name: notepad++ myaliases edit
regex: ^ali$
edit aliases in notepad++ | C:\Program Files (x86)\Notepad++\notepad++.exe C:\Users\<username>\Documents\DonationCoder\FindAndRunRobot\AliasGroups\MyCustom\myaliases.alias

Step 2: make this AutoHotkey helper script start with Windows
When control+s is pressed in Notepad++ and the active file is named myaliases.alias and FindAndRunRobot.exe is running then the script exits FARR, performs the save and then restarts FARR. In all other cases control+s should perform a normal save in Notepad++.

Code: Autohotkey [Select]
  1. SetWorkingDir %A_ScriptDir%
  3. ;farr_notepad++_helper_script
  5. farr := "C:\Program Files (x86)\FindAndRunRobot\FindAndRunRobot.exe"
  7. #IfWinActive ahk_exe notepad++.exe
  8. ^s::
  9. if RegExMatch(win_title, "^.+\myaliases.alias - Notepad..$") and processExist("FindAndRunRobot.exe")
  10. {
  11.   ;if notepad++ active tab is myaliases.alias and FARR process exist
  12.   ;then exit FARR, apply save, silently restart FARR
  13.   RunWait "%farr%" -exit
  14.   send ^s
  15.   sleep 100
  16.   Run "%farr%" -hide
  17. }
  18. else
  19.   send ^s
  20. return
  22. ;function: check if process exists
  23. processExist(process_name){
  24.   process,exist,% process_name
  25.   return errorLevel ;PID or 0
  26. }

Create a backup of your myaliases.alias before testing this in case you or the script unexpectedly mess upp the file.

An alternative to the always running hotkey script in step 2 is to create another FARR alias that only temporarily runs a script with the same exit save restart steps if the last active window before FARR was notepad++ with myaliases.alias open. In this alternative you'd instead of control+s use a FARR alias to initiate the save.

Find And Run Robot / Re: Open alias/group in notepad++
« on: January 09, 2019, 01:28 PM »
You can already send FARR a windows message (or is it commandline call) to make it RELOAD its aliases after you have changed them outside of FARR.. Let me look it up and tell you how to do that..
I'm all ears about windows messages for FARR, haven't tried that method. Before using the exit-edit-start method I tried editing while FARR was running and then sending the special string "goareload" to the FARR editbox , but that it isn't silent (FARR must be open and FARR also forces the special string agroups afterwards) and cannot handle enabling/disabling aliases I think since FARR will override the disabled/enabled change from memory or .ini. Previous thread on that here http://www.donationc...ex.php?topic=45199.0

Find And Run Robot / Re: Open alias/group in notepad++
« on: January 09, 2019, 06:27 AM »
FWIW I'm (slowly) working on an AutoHotkey helper program to replace FARR's built in methods for editing aliases. Not ready for release yet, but working good so far in my test use. Some features:
- jump directly to alias editor window from FARR
- search/filter box with live filter (very useful when you have a lot of aliases)
- some syntax syggestions in the alias edit window
- shortcuts to create regex aliases
- FARR is still usable while the alias editor window is open

Here are some notes on where and in what format FARR stores its aliases, based on me testing things and from looking around in FARR files. Mouser can correct me if I'm wrong on anything here.

FARR stores aliases in .alias XML files. The default user file is
<MyDocuments> \DonationCoder\FindAndRunRobot\AliasGroups\MyCustom\myaliases.alias

other FARR settings including the list of disabled (uncheckboxed) aliases are in
C:\Users\ <user> \Documents\DonationCoder\FindAndRunRobot\FindAndRunRobot.ini

You can edit the .alias file in Notepad++ or any code editor, but it is a bit clunky to manually edit .xml. However if you for example want to change a folder path in a lot of aliases then it'll be easy to do a find/replace all in this file.

Some more notes on interacting with the above files:
- Edits to myaliases.alias have effect when FARR starts.
- Important: FARR adds to .alias the line "<Disabled>true</Disabled>" for each disabled alias. But that only mirrors the authoritative setting in FindAndRunRobot.ini > [Settings] > DisabledAliasStrings
- Edits to FindAndRunRobot.ini only stick when made while FARR is not running, otherwise FARR restores the old values from working memory.

To prevent FARR from restoring old values use this method to change aliases from an external script:
1 exit FARR  (commandline -exit)
2 edit .alias / .ini and save
3 run FARR   (commandline -hide)

Edit: it is easy to mess up with direct edits to the .alias / .ini files so make sure you create backups of them first.

N.A.N.Y. 2019 / Re: NANY 2019: Shorthand 3_2
« on: December 20, 2018, 10:16 AM »
Interesting. I'll test this out when I have more time.

In the meantime, could you make a list of some ways in which Shorthand 3_2 differens from FARR, apart from using Everything as the underlying file search engine?

Happy to help. If you want to read more about the sendkeys command and the syntax for special characters like {TAB} check this FARR help page: http://www.donationc...ulate_keypresses.htm

Dan67, you've posted this question in the Find And Run Robot forum section so I assume you want to do this using that program.

You can create an alias with multiple commands that first loads a website in the default browser, then waits a little and then sends keyboard input to the window that was active before FARR was opened. Here is sample code for the results editbox for the alias.

website login | https::// ;;; sleep 1000 ;;; sendkeys user name here{TAB}password here{ENTER}

Note that this simple example assumes several things:

1. That the form field you want to input text to automatically has focus when the webpage is loaded. If not then you need to first send {TAB} commands until the form field has focus. On some websites even that might not work and then you'd have to find some other solution.

2. That the webpage is designed in such a way that you can also send {TAB} to navigate from the username field to the password field. Might not always be the case.

3. That you're ok with saving the login credentials in plaintext in a FARR alias. May not be a good idea in some cases, depending on who else has access to the computer, how important the account is and so on. There are various password manager tools that either come with a browser plugin or work as external tools. I suggest you first check if one of them can do what you want.

4. That you can reliably predict how long time the website takes to load each time. 1 second in my example may be too short, at least sometimes.

5. The example method might also be unreliable in a risky way since FARR does not verify that the webpage it is sending the credentials to is really the one that you intended. For example imagine that you during the 1 second (or however long you set it) wait period by mistake switch tab in the browser. FARR won't know that and will send the username and password to whatever website in the new active tab. That could end badly if for example that tab was a live chat.

Just a small tip: mp3 file id3 tags supports chapters. If some suitable audioplayer supports showing chapters during playback (VLC perhaps? At least it does for video files) then some of the requested features could perhaps be made through a small frontend app that uses VLC and some id3 tag command line tool to create/adjust chapters and to export/cut audio. FFMpeg also seems to have support for id3 chapters in mp3 files.

Another idea: Some audio players support .cue sheets that make one big audio file appears as multiple tracks. A frontend tool could based on user input edit the plaintext .cue sheet and then reload it in the audio player to achieve some of the requested features.

Find And Run Robot / Re: good addition to find and run robot or not?
« on: November 30, 2018, 12:54 PM »
Is this a plug-in or just some methods for tweaking the aliases?

It's an alias. Here is a shorter instruction on how to set it up.

Begin to create a new alias and enter these details:

alias name: file extension menu

regex pattern: ^((.+)\\(.+)\.(\S+))\s+\.(.*)$

regex result filter: $$5 $$4

[Enter] run default prog for -file.$$4 | shellexe $$1
[Enter]  VLC (mkv;avi;mp4) | %programfiles%\vlc\vlc.exe "$$1"
[Enter] / IRFANview -file.$$4 | %programfiles%\irfanview\i_view32.exe "$$1"
[Enter] notepad npp -file.$$4 | c:\windows\notepad.exe "$$1"


Note: You can pick and choose which results lines you want to use from the rightmost column in the largest table in this post
Or create your own using the same pattern.

Once set up use it this way
- Do a regular FARR search.
- Navigate down into the results window and select the file you want to operate on.
- Press Right Arrow Key to fill the FARR search box with the full path to the selected file.
- Press Space followed by . (period).

The FARR results should now list the different actions you can take on the file. Here is how that looks in my FARR.

edit: you can filter the results list of actions by continuing to type characters exclusive to one of the results lines. For example type npp to only show the open with Notepad action.

At least the above steps is how I think it is meant to be used, from a very quick test. I don't use it myself.

You know, this got me thinking I could create an AutoHotkey helper script that does something similar but which also autofilters and ranks the actions based on file extension, parent folder etcetera. A tiny FARR for choosing what action to take on a FARR result, sort of. :D

mouser, it could help users if there were more examples on this help page
Also consider adding a tip there about the $$u1 or $$h1 variables or a link to that information.

I don't use Skype so haven't tested the below, but you could give it a try.

According to the unofficial skype blog at you can start a Skype call from the command line with a parameter like this

So I suspect that an alias looking something like this will work
Alias: skype call
regex: ^skype (.*)$
results: C:\folder\skype.exe --_="skype:$$1?call"

But with the correct path to skype.exe or whatever the executable is named. Also maybe the " characters may need to be escaped.

Once that is tweaked to work you then input this into FARR and press enter to start the call
skype +1555-555-5555

AutoHotkey script to make Tab button toggle folders search on/off in FARR by adding/removing +\ to the searchbox.

Code: Autohotkey [Select]
  2. ;FARR helper script
  3. ;by nod5 181119
  4. ;Press Tab to toggle search only folders
  5. ;Note: Overrides FARR default Tab autocomplete hotkey
  7. #IfWinActive, ahk_exe FindAndRunRobot.exe
  8. Tab::
  9. ControlGetText, farr, TEdit1, ahk_exe FindAndRunRobot.exe
  10. farr := InStr(farr, "+\") ? StrReplace(farr, "+\", "") : farr " +\"
  11. ControlSetText, Tedit1, % farr, ahk_exe FindAndRunRobot.exe
  12. return

FARR's default Tab shortcut autocompletes the selected results full path into the search box.

I never have use for that but often want to temporarily limit searches to folders only and pressing Tab (with this script running) is quicker than typing or removing +\ in the searchbox.

it overwrites the files by default if it is already existed in the current folder
I don't think it does, on the contrary in my (quick) tests it silently skips to unzip/move files if another file with the same name exists in the target path. But yes, a complete program should handle such cases by asking the user what to do. However that would take more time, which I don't have for this right now. But someone else might.

Hi all. Here is an AutoHotkey prototype. I don't have time to make more of it right now. But maybe someone else takes this to the next level?

Code: Autohotkey [Select]
  1. ;Smarter unzip sketch
  2. ;by nod5  181114
  4. ;note: only a sketch/prototype so far
  5. ;todo:
  6. ;- add error checks/handling:
  7. ;   1 unzip errors (paths to long, or whatever)
  8. ;   2 file/folder move errors:
  9. ;     - script currently silently avoids overwrite
  10. ;     - need to add code to prompt user: overwrite yes/no? and react accordingly
  11. ;- must test how reliable the unzip function performs if the zip file is huge, etcetera
  12. ;- notify user while processing (window, tooltip, etcetera)
  13. ;- prevent repeat commands while processing
  14. ;- replace crude F5 refresh with something better, maybe also reselect zip file after refresh
  16. #IfWinActive ahk_exe explorer.exe
  17. !#Lbutton::
  19. ;get first file in Explorer selection and verify that it is .zip
  20. clip := ClipToVar()
  21. Loop, parse, clip, `n, `r
  22. {
  23.   firstfile := A_LoopField
  24. }
  25. if !FileExist(firstfile) or (SubStr(firstfile,-3) != ".zip")
  26.   return
  28. ;unzip to temporary folder
  29. SplitPath, firstfile, , folder, , zipname_noext
  30. tempfolder := folder "\temp_" A_Now
  31. FileCreateDir, % tempfolder
  32. Unzip(firstfile, tempfolder)
  34. ;count unzipped files/folders recursively
  35. Loop, Files, % tempfolder "\*.*", FDR
  36. {
  37.   allcount := A_Index
  38.   onlyitem := A_LoopFilePath
  39. }
  41. ;count unzipped files/folders at first level only
  42. Loop, Files, % tempfolder "\*.*", FD
  43. {
  44.   firstlevelcount := A_Index
  45.   firstlevelitem  := A_LoopFilePath
  46. }
  48. ;case1: only one file/folder in whole zip
  49. if (allcount = 1)
  50. {
  51.   if InStr( FileExist(onlyitem), "D")
  52.   {
  53.     SplitPath, onlyitem, onlyfoldername
  54.     FileMoveDir, % onlyitem, % folder "\" onlyfoldername
  55.   }
  56.   else
  57.     FileMove   , % onlyitem, % folder
  58. }
  60. ;case2: only one folder (and no files) at the first level in zip
  61. else if (firstlevelcount = 1) and InStr(FileExist(firstlevelitem), "D")
  62. {
  63.   SplitPath, firstlevelitem, firstlevelfoldername
  64.   FileMoveDir, % firstlevelitem, % folder "\" firstlevelfoldername
  65. }
  67. ;case3: multiple files/folders at the first level in zip
  68. else
  69. {
  70.   FileMoveDir % tempfolder, % folder "\" zipname_noext
  71. }
  73. ;cleanup temp folder
  74. FileRemoveDir, % tempfolder, 1
  76. ;refresh Explorer to show results
  77. If WinActive("ahk_exe Explorer.exe")
  78.   Send {F5}
  79. return
  82. ;function: copy selection to clipboard to var
  83. ClipToVar() {
  84.   cliptemp := clipboardall ;backup
  85.   clipboard =
  86.   send ^c
  87.   clipwait, 1
  88.   clip := clipboard
  89.   clipboard := cliptemp    ;restore
  90.   return clip
  91. }
  94. ;function: unzip files to already existing folder
  95. ;zip file can have subfolders
  96. Unzip(zipfile, folder)
  97. {
  98.   psh := ComObjCreate("Shell.Application")
  99.   psh.Namespace(folder).CopyHere( psh.Namespace(zipfile).items, 4|16)
  100. }

I don't think there is a built in method in FARR to do that, though I might be wrong.

Here is a workaround where you pass the search string to AutoHotkey which makes it lowercase and runs the search. You can change the alias name, folder path, base URL and so on to fit your use case.

First create the alias
- alias name: _
- RegEx: _(.+)
- Result(s): C:\folder\search_lowercase.exe "$$1"

Next save this code as search_lowercase.ahk, compile it and move to C:\folder\search_lowercase.exe
Code: Autohotkey [Select]
  1. ;Search Google for input parameter string
  2. if A_Args[1]
  3.   Run % "" Format("{:L}", A_Args[1])

Find And Run Robot / Re: EditSkinFile is not portable
« on: October 22, 2018, 09:45 AM »
I only tested this quickly but it seems you can manually edit FindAndRunRobot.ini (must close the FARR process first) and change this line
EditSkinFile=C:\Program Files (x86)\FindAndRunRobot\Skins\<skin name>.skn
EditSkinFile=Skins\<skin name>.skn
and then that skin will still be applied when you start FARR again.

Heya Nod5, I tried to download this again, but all I'm getting is:
Sorry! Download is not available yet.
Hi, thanks for the heads up. Problem fixed now, try downloading again.

Finished Programs / Re: DONE: Tally folder contents by file date
« on: September 23, 2018, 04:37 AM »
I could use something like that too so here is an alternative implementation in AutoHotkey

Code: Autohotkey [Select]
  2. ;Tally_by_date.ahk
  3. ;by nod5
  5. ;- compile it and run from the command line with a folder path as parameter
  6. ;- outputs a date sorted tally of date created for all files in the input folder
  8. ; example input: tally_by_date.exe "C:\this folder\folder"
  10. ; example output: C:\this folder\folder\Tally_by_date -- 201809220631.txt
  11. ; with the content:
  12. ; 2018-07-23 9
  13. ; 2018-08-03 4
  14. ; ...
  16. folder := A_Args[1]
  18. if !InStr( FileExist(folder), "D")
  19.   ;not folder
  21. f_array := []
  23. ;loop over all files in folder, exclude folders and do not recurse
  24. Loop, Files, % folder "\*.*"
  25. {
  26.   ;get date in YYYY-MM-DD format
  27.   FormatTime, date_var, % A_LoopFileTimeCreated, yyyy-MM-dd
  28.   f_array[date_var] := f_array[date_var] ? f_array[date_var] + 1 : 1
  29. }
  30. For key, val in f_array
  31.   out .= key " " val "`n"
  33. FileAppend, % out , % folder "\Tally_by_date -- " A_now ".txt"

Find And Run Robot / Re: Extension Filtering still shows folders
« on: August 31, 2018, 05:02 AM »
I don't think you can exclude subfolders in the "Search Folders" settings window.

You can do it with a custom search folder and an Alias though. Here is an example

1. create a Search folder.
Directory path:  C:\folder\this
optional file extension restrictions:  sln
optional modifier keyword: my_search_no_folders

2. go to options > alias and create a new Alias.
Alias: my custom search
regular expression: ^(?:m|my) (..*)
results: dosearch -alias +my_search_no_folders $$1 -\

After that you can type m xyz or my xyz into FARR and the results will be a list of files with the string xyz in the name and the extension .sln and that reside in the folder C:\folder\this or its subfolders. The results will not list any folders.

The loss of Atom would be no loss for developers.
I and 18% of the SO 2018 survey respondents politely disagree  :)

But it is interesting to see how VS Code has skyrocketed to the top since 2016

Anyway, I'm getting off topic here so will go quiet now.

It was a public open-source repository before Microsoft bought it.  In other words, prior to their purchase, they already had access to all of the code anytime they pleased.
Not all, since paid GitHub plans also include the option to create private repos.

So far there seem to be no change in how GitHub operates. But it isn't unreasonable to worry about longer term changes. For some such worries, see 

I wonder what will happen to GitHub's Atom now given that it is a competitor to Microsoft's Visual Studio Code.

I think it is time for me to put my software, Splinter DC Splinter page , into the public domain. I doubt I am ever going to be able to work on/with it, anymore. I would rather have it expanded upon and be bettered by better folks, than me, then to not due to me wanting to keep the source secret. Maybe some type of "centrallized" location that I would be able to visit and see how it is progressing...

Think through if a public domain license is what you want or if some other license is a better fit. is a useful resource.

This page places licenses on a spectrum of openness. The Unlicense at the bottom of the page is what many mean by public domain. If you want to ensure ability to access the source code of software derivative of your work then you could pick a more open license than the Unlicense. FWIW I tend to use GPLv3.

It is easy to set up a GitHub account. If you mostly want to do a one time upload of the code to your own repository then you can probably do that through the web interface without even installing a git client.

General Software Discussion / Re: Listary 6
« on: August 19, 2018, 02:02 PM »
Does any news about Listary 6 suggest that it will get something akin to FARR's powerful alias system?

Thanks for the feedback everyone. I haven't really researched other preexisting tools like this in the Windows space much. Your links will be useful reading.

I now also found a discussion on reddit about Marvin and some there use the term FIM, File Integrity Monitoring, for tools of this kind.

I suppose it remains to be seen if there really is some useful niche left to be filled by creating one more tool.

How big is the set of files you want to monitor? 

Good question! I'm not sure yet. One issue is how to balance between annoyingly distracting notification overload (a big risk with any tool of this type I suspect) and useful prevention of bad effects from mistakes. I do like the idea of a tool that doesn't at the time of edit/move/deletion prevent the action nor require confirmation but instead only notifies of the change at some later time, in order to prevent a mistake from spreading into the backups.

in most cases (and with a proper filter) 'Process Monitor' from SysInternals can show you your (set of) monitored file(s), which process has doing the modifying and when the modifying did occurred. It doesn't prevent any modification though.
Like with my idea with using Everything perhaps a small tool can make effective use of Process Monitor logs instead of doing all that natively.

N.A.N.Y. idea: file modification monitor and alert tool.

A Windows version of Marvin ( ) but with fewer features. Only daily or manually started checks (not realtime), only local notifications (not email/push).

Perhaps simply an AutoHotkey script that makes use of Everything's database and command line tool ( https://www.voidtool...mand_line_interface/ ) to check for changes to a user specified list of files/folders.

Useful as a safety precaution when using non-versioning, mirroring only backup tools like Bvckup2 ( ).

Before each backup job, check for unwanted modifications to files/folders on the monitoring list. A scheduled task for daily backups could first run the modification check tool and take conditional action: if no changes to files on the monitoring list then perform backup, else alert the user and postpone backup until manual confirmation.

For example if you accidentally and unknowlingly delete an important folder (on your monitoring list) in Explorer this tool would halt/alert you before you run a mirroring backup job that would delete the important folder also from the backup drive.

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