**************** WinBatch+Comiler 2022E (Beta) release ****************

Started by td, December 07, 2022, 10:14:06 AM

Previous topic - Next topic


This beta release is a bit unique because it consists of a number of user requests and defect reports that happen to coincide with items on the "Fixed and Improvements" to-do list.

Customers with a current license may download the beta version of the software from the download page.  Find beta software in the Alternatives
download list.


If you do not have a current license and are interested in updating WinBatch+Compiler and extenders, please visit our software purchase page. You can easily order online.


Beta release notes:

WB 2022E 2022 Dec 7, 2022  (beta)

DLL 6.22eve First appearing in WB 2022E

   Move extender unloading to later in the WinBatch process shutdown sequence to ensure extender
   resources cleanup.

   Restored WinBatch Studio Analyzer's ability to check the parameter count of extender

   Address an issue that caused object reference dot (".") syntax to error when applied to a map
   element using map square-bracket syntax.

   Added option 2 to the RegQueryDword function's "flags" parameter. Value 2 causes the function
   to return the value of a registry key or data item in signed decimal format. This option can
   be combined with one of the registry view options using the WIL bitwise OR (|) operator.

  New functions:
    SendKeyW(s:key-string, [f:delay])
      Unicode version of the WIL SendKey function.
        key-string:  Unicode, regular and/or special characters
        delay:       [optional] number of seconds to delay between keys
    SendKeysToW(s:parent-windowname, s:key-string, [f:delay])
      Unicode version of the WIL SendKey function.
        parent-windowname:  initial part, or an entire window name.   
        key-string:         Unicode, regular and/or special characters
        delay:              [optional] number of seconds to delay between keys

    TimeZoneConvert(s:ymdhms, s:from-zone[, s:to-zone])
      Returns ymdhms time adjusted to a new time zone.
        ymdhms:    time to convert.
        form-zone: ID of time zone of the time in the first parameter.
        to-zone:   [optional] ID of time zone of the returned time. Defaults to
                   system's time zone.

      Returns an item list or an array of the names of known time zones, or a sting
      containing the current local time zone.
        option:  [optional] 0 to return an item list. 1 to return an array. 2 to return the
                    current local time zone. Defaults to 0.

  New IntControl:
    IntControl(102, p1, 0, 0, 0)
    Use to switch the WIL FileInfoToArray,  RegQueryKeyLastWriteTime, and FileTimeGetEx
    functions to return file times in UTC instead of local time on NTFS disk volumes.
    Returns the previous setting.
      p1   Set to 1 (@True) for UTC times. Set to 0 (@False) for local times. Local time is the

  WIL dialogs and WinBatch Dialog Editor:
    Added new dialog event @deFocus (24) that calls a dialogs' UDP when any control that can
    receive the input focus does. Note that this event does not fire when you call
    DiaologControlState with request-code @dcsSetFocus. This restriction is necessary to prevent
    infinite recursion within a dialog's UDP.

    Fixed memory exception problem caused by initializing a REPORTVIEW control with a control
    variable that does not contain an array.

"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade


Not that I have time to experiment with this at the moment, but,

This is cool!! the @deFocus event will allow me to write my usual "focus loss" pseudo-event without using a timer event!  Much cleaner.

Nice stuff Tony

The mind is everything; What you think, you become.


Yes.   Thank you VERY much!!!   Will see if the new SendKey stuff solves the problem one of my users encountered.

I can also deprecate the Focus stuff from my Extender, assuming I am reading that right.   Guess I can also, possibly, do the same with the TimeZone stuff.   Will have to look at that a bit closer.

Great additions.



Assuming you are not already doing it, any chance you could put the control name in the event-info field?   I know one can make another function call to find out the info but would save another function call thereby making things more efficient.



The time zone functions are something recently needed internally and related to several user requests. Don't know how that relates to your extender as I don't know what your extender does with either control focus or time zones. Our intention with both additions was to fulfill long-standing requests.

With regard to control names in the focus event and as documented in the help file: "The control-name parameter of the user-defined-callback contains the name of the control receiving the focus. The change-info parameter contains the name of the control losing the input focus or an empty string when no control lost the focus." May be wrong but I assume this covers the functionality you requested.

Besides your user request, the SendKeyW function is needed with regard to the long-standing internal goal of full Unicode support. Got to check one of the trickier ones off the list...

"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade


Excellent.  Was on another project and haven't had time to install this version yet so wasn't sure what info was available on the Focus event.   Wanted to put in a plug in case it wasn't there and while it was still in Beta.  Thanks.   Very useful additions.




Just one comment. Do with it what you will. But I would appreciate if IntControl(102, p1, 0, 0, 0) had 3 settings, 0 for UTC, 1 for NON-DST and 2 for Local Time. 2 Being the default.

I would also appreciate if this affected all functions that return a date (obviously not the mathematical functions ie. TimeAdd/TimeSubtract/TimeDiff). Therefore, TimeYmdHms would be bound by this IntControl.

Just my 2c.