************ WinBatch+Compiler 2026A Release ************

Started by td, January 26, 2026, 09:57:37 AM

Previous topic - Next topic

td


WinBatch, WebBatch, and WinBatch+Compiler 2026A are now available for download.

Users with a current license may download the latest version of the software from the download page.

https://www.winbatch.com/download.html - use the "Click here to download WinBatch+Compiler" link.

If you do not have a current license and are interested in this and future releases, please visit our software purchase page. You can easily order online at

https://commerce.winbatch.com


WB 2026A 2026 Jan 23, 2026 

 DLL 6.26aza First appearing in WB 2026A

  !!! IMPORTANT !!!
  Changed the WinBatch product licensing algorithm to address the limitations of the previous
  version. As a result, the new license numbers for all products will no longer be valid for
  executable product versions released before January 2026.
 
  Modified ForEach processing of variant variable safearrays to skip foreach loop processing
  when the safearray of type ARRAY|ERROR or when the array does not contain any elements.
  Previously, using an empty safearray in a ForEach generated a WinBatch error.
 
  Improved the CredMan function's ability to clear password strings from memory when using the
  "Domain" or "Generic" commands. Also addressed a potential memory corruption problem when
  clearing password strings.

  Add new p1 option 4 to IntControl 93. Option p1 option 4 returns the friendly name associated
  with a certificate in the system store. The p2 parameter must specify the thumbprint of a
  certificate in the system store.

  Improved appearance of FileMemu DLL's main menu "File Attributes" dialogs on high DPI
  monitors.

  Modified conversion of variant R4s and R8s to WIL integers to allow conversions to WIL 64-bit
  integers when the floating point value is outside the range of WIL 32-bit integers.

  Address an issue with Unicode-delimited lists that could cause list related functions to fail
  to detect the end of the list.

  New functions:
    StrClear( string_var )
     Wipes the string memory associated with a WIL variable. Always returns 1.
     string_var:   a WIL variable containing a multibyte, unicode, or BSTR string.

    SharedMemClose(mem-name)
     Closes a shared memory instance. Returns @True(1) on success: otherwise @Falsae (0).
     mem-name: Name of shared memory instance as passed to SharedMemOpen.
   
    SharedMemOpen(mem-name, global)
     Creates or opens a shared memory instance. Returns @True(1) on success: otherwise
     @Falsae (0).
     mem-name: Name of a new or existing shared memory instance.
     global:   @True(1) allow access by all users in the system. @Falsae (0) only
               the current user has access.
 
    SharedMemRead(mem-name, timeout)
     Reads data from a shared memory instance. Retrurns memory contents, "*NODATA*", or
     "*TIMEOUT*".
     mem-name: Name of a new or existing shared memory instance.
     timeout:  Read timeout period or -1 to never timeout.
   
    SharedMemWrite(mem-name, data, timeout)
     Writes data to a shared memory instance. Returns @True(1) on success: otherwise
     @False (0) when the timeout period expires without writing data.
     mem-name: Name of a new or existing shared memory instance.
     data:     String, number, or binary buffer contents to place in shared memory.
     timeout:  Read timeout period or -1 to never timeout.

   New IntControl:
   IntControl(103, p1, 0, 0, 0)
   Use to clear sensitive sting data from process memory.
   Returns the previous setting.
    p1   Set to 1 (@True) to clear string memory. Set to 0 (@False) to turn off clearing. Off is
         the default.   
 
  Dialogs and Dialog Editor:
    Modified the editor to have edit and mulitedit controls reflect text alignment style changes
    in the displayed text after a user changes the control's alignment style attribute.
 
    Add the @csEditAll(-2147483648) style to the REPORTVIEW control. This style, when set, enables
    editing of every column of every row to be editable. The style overrides the @csEditItem style
    if set.

    Modified the 'DialogControlState' function to support new REPORTVIEW style @csEditAll.

    Add the "Add DPI variable to new templates" option to the Dialog Editor's
    Edit->Options...->Save menu dialog. Selecting this option causes the editor to always
    add the "<dlg-variable>DPI = <dpi,x-units,y-units>" to dialog templates. The DPI variable
    can still be removed from an individual dialog template by unchecking "Add DPI variable for
    automatic adjustment" on the "Position and Size" dialog attributes tab.

    Added support for Graphics Interchange Format (GIF), Joint Photographic
    Experts Group (JPEG), Exchangeable Image File (Exif), Portable Network Graphics (PNG), and
    Tag Image File Format (TIFF), Windows Metafile Format (WMF), Enhanced Metafile (EMF, EMF+)
    images to PICTURE and PICTURE BUTTON controls, as well as dialog backgrounds. Previously,
    dialog controls and backgrounds, and only supported Bitmap (BMP) files. 

    Increased the maximum REPORTVIEW control item text length for each item to 4049 characters.

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


JTaylor

I get the following page/message when trying to download.

 WebBatch
Version 2024B
   


Thank you for using WebBatch!
Click here to purchase a standard license.

td

You are still downloading 2026A.  It is simpler to use the WinBatch download page.
"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade

JTaylor

Sorry.  I meant all I can get to is that WebBatch error page after entering my info and clicking Continue.  I never get to the dowload page.

Jim

td

Are you referring to the WebBatch eval download? I have no problems downloading WebBatch, WinBatch, or WinBatch+Compiler, so I am a bit confused. Maybe provide the link you are using.
"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade

JTaylor


I am at this link/page and I enter my information and click Continue.  I just received new license info today, if that matters.:

https://techsupt.winbatch.com/webcgi/webbatch.exe?compilers/compupd01.web


WinBatch Compiler Downloads

This section is designed for current WinBatch+Compiler customers on an active license. Current customers may download a current version of the WinBatch+Compiler package, or choose from a select list of previous versions if they are required.

To update your copy of the compiler you must enter your full name, email address, and license numbers below. You must use an active license purchased from Island Lake Consulting LLC. Information on your current plan status, if applicable, will appear on the next screen.


I then get that webbatch page when things aren't quite right at some level.  I have seen this quite often myself when I am trying to setup webbatch.  The link doesn't appear to change.

https://techsupt.winbatch.com/webcgi/compiler.exe?compilers/compupd01.web



 WebBatch
Version 2024B
   


Thank you for using WebBatch!
Click here to purchase a standard license.


     ID number:


Control number:


               


WebBatch technical support:
http://techsupt.winbatch.com
support@winbatch.com

Copyright ©1995-2024 Island Lake Consulting LLC
All rights reserved.

td

It is a long story, but the problem is related to our new licensing algorithm, as mentioned in the release notes. It was a bit confusing because quite a few users have already downloaded the latest version, but the WebBatch version number on the error message was the clue that lit the dim bulb.

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

kdmoyers

Tony, can you explain what the <dlg-variable>DPI thing is useful for?  It sounds cool, but I'm not sure I "get it".
The mind is everything; What you think, you become.

kdmoyers

Also, does the @csEditAll flag change the way the @cdRviText event works?  Presently, it is defined as:

@deRviText (21)
 Item Text: User has changed the text of a first column item in a REPORTVIEW control. The user modified text of the item is passed to the callback UDF/UDS in the callback's fifth parameter. Note that if more than one first column item of a control contains the same value, it is possible for the fifth parameter to contain a tab delimited list of multiple occurrences of the targeted item's text. The number items in the list indicates which instance of the item is the target of the event.

((I guess what I'm asking is, what's the best way to process the events of the user changing data in the reportview with @csEditAll turned on?))
 
The mind is everything; What you think, you become.

JTaylor

Thanks.

Quote from: td on January 27, 2026, 02:52:07 PMIt is a long story, but the problem is related to our new licensing algorithm, as mentioned in the release notes. It was a bit confusing because quite a few users have already downloaded the latest version, but the WebBatch version number on the error message was the clue that lit the dim bulb.

It should work now.

td

Quote from: kdmoyers on January 28, 2026, 04:29:47 AMTony, can you explain what the <dlg-variable>DPI thing is useful for?  It sounds cool, but I'm not sure I "get it".

It enables WIL dialogs created on high DPI monitors (3840 x 2160 or higher) to look the same on standard DPI monitors or the reverse. High dpi monitors have become increasingly common. I have been using them for about 8 years. MSFT had haphazard support in Windows for many years, but they supported it in earnest with the release of the first Windows 10 systems. The implementation of high DPI support in WinBatch was a major undertaking and involved many WIL functions and WinBatch-built-in dialogs. All dialogs released that are a part of a WinBatch release have supported high DPI since the release of 2019A in January of 2019. Well, we did miss a few things in the original release of support that were corrected in subsequent releases before anyone noticed.

There is a description in the release notes for the 2019A release and in the Consolidated  WIL Help file.
https://docs.winbatch.com/mergedProjects/WindowsInterfaceLanguage/html/Defining_the_Dialog.htm
"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade

td

Quote from: kdmoyers on January 28, 2026, 04:42:47 AMAlso, does the @csEditAll flag change the way the @cdRviText event works?  Presently, it is defined as:

@deRviText (21)
 Item Text: User has changed the text of a first column item in a REPORTVIEW control. The user modified text of the item is passed to the callback UDF/UDS in the callback's fifth parameter. Note that if more than one first column item of a control contains the same value, it is possible for the fifth parameter to contain a tab delimited list of multiple occurrences of the targeted item's text. The number items in the list indicates which instance of the item is the target of the event.

((I guess what I'm asking is, what's the best way to process the events of the user changing data in the reportview with @csEditAll turned on?))
 

The @deRviText event fires for edit events for all columns.
"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade

td

Quote from: JTaylor on January 28, 2026, 07:37:28 AMThanks.

Thanks for pointing out the blunder. When a release is rolled out, it takes a few days to spread the new release to all systems. Installing the new WebBatch license caused the problem because the download page uses a renamed version WebBatch.exe to appease some browser implementations. The renamed file got missed... It makes the case for writing a WinBatch script to automate the process. 
"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade

kdmoyers

Quote from: td on January 28, 2026, 09:21:44 AMThe @deRviText event fires for edit events for all columns.

Got it.  And the way to detect which column was edited is by doing before/after comparison? 

If so, I think I can handle that, since I will have just gotten the @deRvrSelect event, allowing me to store a copy to compare against.

It would be slick if the callback's fifth parameter contained both the row and column that was editted.

((This whole feature is going to be a BIG help, simplifying my CRUD programs. Thanks Tony!))
The mind is everything; What you think, you become.

td

Yup, some thought is being given to making the @deRviText even more useful.
"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade

kdmoyers

One thought might be to make a different event altogether that does basically the same thing as @deRviText, but returns a different value in the fifth parameter.

It might return absolute indexes, like 8th row 6th column, along with the new value itself, like

8 @tab 6 @tab blue suede shoes
The mind is everything; What you think, you become.

td

The current thinking is to keep the current event, but add the row and column information when the control has the edit all style. Of course, the problem with such a solution is that the new text part of the delimited event string can contain anything, including the designated delimiter.

A way to deal with all this is still being worked on.
"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade

kdmoyers

That sounds like a pretty good solution.  Maybe it's ok that the value might have embedded delimiters if it's the last piece because you can do itemremove(1,itemremove(1,x,@tab),@tab)
The mind is everything; What you think, you become.

td

That is a very clever suggestion but we have already decided on a slightly different solution.
"No one who sees a peregrine falcon fly can ever forget the beauty and thrill of that flight."
  - Dr. Tom Cade

JTaylor

Perhaps consider implementing F2 as one method for entering Edit mode?

Jim

JTaylor

Are there any plans to return DblClick event to ReportViews when using the Edit all with the solution mentioned above? 

Jim

kdmoyers

Quote from: td on January 30, 2026, 09:33:30 AMThat is a very clever suggestion but we have already decided on a slightly different solution.
Awesome, I'm excited!
The mind is everything; What you think, you become.

SMF spam blocked by CleanTalk