Rated 5 stars at SnapFiles
   Shareware and Freeware



This Month's Donators V. Spanke ... more PayPal

 

Use with caution.
These public beta programs contain new fixes and new features that haven't been fully tested. I need you to tell me if you find any problems with these program or even if the changes listed work as you expect.

joejoe Aug-01-25 4:43 AM UTC

Mouse Wrangler

Mouse Wrangler is getting some updates and a new 2.0 version number.

The Edit Gestures window is getting a re-vamp. Settings are getting divided into "Global" and "Per-Program". The Global gestures operate no matter the current foreground window. The Per-Program only operate when the target program is in the foreground. The goal is to make the process much less confusing. These changes will be included in the first Public Beta.

A quality of life feature will be researched. There needs to be a way to quickly disable all gestures for the current foreground window. For example, if you're running a game that requires right-clicking and moving the mouse, there needs to be a way to stop that doesn't require exiting fullscreen. There is a Scroll Lock method to disable all gestures for all programs, but many new keyboards don't have a Scroll Lock key and require a hidden key combination to activate.

Next, the New/Edit Gesture window needs a few tweaks. The gesture directions will be visualized on the window.

Lastly, a new type of Gesture is setting planned. This ability will add swiping from the top/bottom/left/right of the screen. This will mimic the functionality of mobile devices that can swipe from the sides of the screen.

joejoe Jul-24-25 7:25 PM UTC

AC and JavaScript

I'm currently working some fixes and workarounds for dealing with scripting. The first is a simple fix. if you click in just the right spot in an empty line in the Edit Permanent Clip window, it will cause and exception. This was a long existing issue that has now been fixed. It was just hard to track down.

The second issue is a tough one. A long running JavaScript clip can freeze the program's interface indefinitely. As a workaround, I've created a new arsclip.ini hidden variable for defining a timeout: JavaScriptTimeoutMS. By default, it is zero and will not timeout a script. When set, an external watcher will query the script status and will interrupt the script if it runs too long. In the Edit Permanent Clips window, when testing a script, you'll see a timeout error in the results section.

Ideally, I'd like a user interaction to be able to cancel the frozen script. Since the GUI thread is frozen, this isn't possible - even with a global hotkey. Running the script in a separate thread does not seem possible by design. I've found now way to use or configure IActiveScript to work in a thread.

I'm testing the workaround now and need to finish documenting the setting in the program. This should be available as a Public Beta soon.

joejoe Sep-13-24 9:55 PM UTC

RM Performance and Current Status

The latest Public Beta includes the final changes for improving the loading speed of the program and renaming scripts. On slower systems, the changes from last version and this version combined is a significant speed improvement: 60 to 80% faster. One optional final manual optimization is to use a blank Default.rmscr file. This will save a few seconds of loading time.

This update also includes some updates to better support form scaling. This is still a hidden setting in the rm.ini text file - since it's a feature that still has some display issues. The address bar and the folder list drop downs now scale with this setting. System created Popup menus (aka Context Menus) are not compatible. Currently, the File List only uses the Configuration Setting for the font size. I'm unsure if this should be changed or not.

Lastly, I'm still compiling a list of JavaScript examples to show of the new features. One example is a script to remove leading zeros from numbers. Another is script to add/subtract from all numbers in the name. Yet another is a way to rename files using a subcounter (like File X Part Y). The biggest request is a way to conditionally add/replace/remove from a name. This feature, however, doesn't have a general use case. The condition is just to arbitrary. I can make a specify example, like "Add to name if the name can contains X", but this wouldn't be very flexible.

joejoe Sep-05-24 9:51 PM UTC

RM and JavaScript

The first Public Beta test version supporting JavaScript has been released. There are some features that are missing and I'm still not sure what version of Windows is required to use it.

I'm using the "newest" Chakra JavaScript Engine that is included in Windows by default. I believe this version was introduced with Internet Explorer 9. So, this should be available to Win8 and above at a minimum. For older versions of Windows that could install IE9, like Vista, they may also be compatible. I can default to the older version of the engine, but I don't yet know what Windows version to test for to accomplish this. The required file is "jscript9.dll" to use the Chakra version of the JS Engine.

This Chakra version of JavaScript is still missing a lot of the ES5 features. There's no const, no JSON object, and it doesn't support any of the new array member functions (isArray,match,filter, etc). It does have Date.now(), but not toISOString().

The two most commonly requested renaming features are number math and conditional add/replace/remove. The new JavaScript Renaming Step will be able to easily support this. This RM test version does not include any examples yet. I'm looking for more feedback to create a good list of examples to add to the program.

joejoe Aug-23-24 8:11 PM UTC

RM Prototype Window

myimage

Above is a prototype window for editing a JavaScript Step. This is a copy of the ArsClip window used for editing clips, so I can work on this code independently. This will create a ".rmsj" file that can be used in multiple Renaming Scripts (".rmscr" files).

For debugging this step, some input is required. First, the results of the previous Renaming Step is required. This is the input for the "main" function. Second, if RM_GetMetaValue() is used, a existing filename is required.

The "RM_" specific functions are simple and there's only five of them; only one is required. Two are used to display debug text. One is likely not used, but it will give you the filepath of the folder where the ".rmjs" files are stored. One retrieves the value of meta-variables, so you have access to all the data of a normal Renaming Script. Lastly, one is used to return the new name of the file (or the same name, if it is not changed).

What will this be used for? Mostly, this will be a "quick" way for me to respond to feedback. If RM doesn't support a renaming feature, like number math, I can create a script to do this on the fly. Advanced users can create their own custom Renaming Steps, to solve very specific problems that RM cannot do with the existing Renaming Steps. Maybe some users will be able to just copy and paste some string manipulation code.

joejoe Aug-20-24 6:27 PM UTC

RM Plans Changed

The next Public Beta release (Test 5) will be Release Candidate 1 for version 3.20. I'm postponing bigger changes until the next version, which will tentatively be 4.00. For Test 5, the loading times have been reduced by almost 50% for the program and for scripts on my slow system.

Version 4.00 currently has three changes scheduled. First, a new JavaScript Renaming Step will be added. Technically, you'll be to create your own custom Renaming Steps that can be re-used in all scripts. Lastly, two more performance improvement will be added. There are a few forms (aka windows), that do not need to be loaded at startup. These will be changed to loaded on demand and will decrease the loading time by at least 25%. Support for the really old ".RM-" scripts will be removed. This will have a small increase in the loading time of the program and the loading of scripts.

My plan is to have this be the only changes for the 4.00 version. There may be a version 3.21 to address any undiscovered issues. At least a week is reserved after an officially to address any issues, and this time will be spent putting my JS support ideas onto paper.

joejoe Aug-09-24 6:47 PM UTC

Another RM and AC Status Update

For ArsClip, I'm finishing the final testing. The next upload will be the first Release Candidate. I decided to extend the testing period because so much had changed and core features of the program were altered.

For Rename Master, I'm procrastinating. The big planned feature of adding JavaScript support won't be easy. It's also a feature that most users will not use. I'll first be doing research on ways to improve the loading of scripts. Generating controls at runtime is slow. A lot of events get triggered when dynamically updating a window. It's incredibly hard to debug and diagnose issues.

On a side note, I'm curious if anyone would want hashes (eg. SHA256) for the files in ZIP archives listed on the website. I don't user any mirror sites to host downloads, so anything retrieved from my website is obviously only from my website.

joejoe Aug-07-24 1:34 AM UTC

More QoL for Rename Master

myimage

Above shows the upcoming improvement for dealing with textboxes that can use wildcards and RegEx. When you click on one of these fields, a new button will appear next to the "Insert Meta-Variable" button. Textboxes that are used as a search field will have this feature and the Insert button will still have a different image to mark it.

By default, Wildcards will be disabled. So, when you insert a Meta-Variable, it will show using its friendly name instead of the raw code. When Wildcards are enabled, the background color of the textbox will darken. I don't think many people use the Windows filename style wildcards [*,?,?*], so it makes sense to have this option off by default.

The "Wildcards" submenu in the popup for the Insert button is replaced by the new feature.

Older Items






Got an idea for improvement, a bug to report? Just want to say hello? Send me your feedback.
I can be contacted at jackass.joejoe@gmail.com English only please.