What's new

QM 2.3.0 (January 2, 2009)

Exact version: 2.3.0.5

 

Summary: Supports Unicode. Does not run on Windows 98/Me. Improved code editor. Changes in QM user interface. A faster way to find help and tools. Updated WINAPI, added Vista declarations. New functions. XML and CSV functions. Can open external text files. Custom icons of QM items. Shell menu triggers. Bookmarks and saved searches. Printing. QM Pro not needed for exe.

 

Warning: In this version there are changes that may break some of your existing macros. Read about possible compatibility problems here.

 

  1. Supports Unicode.
  2. Does not run on Windows 98/Me. The last QM version that supports Unicode - QM 2.2.1 - is available for download.
  3. Improved code editor. Some related info is here and here. You can change colors and fonts in Options -> Editor.
  4. Open Items and Running Items lists. To show, check View Active Items in Edit or Run menu.
  5. Search Help and Tools. Previously it was available in the forum. If you have downloaded it, delete "QM quick help search" folder from the list of macros.
  6. Custom icons of QM items.
  7. More options in Icons dialog.
  8. Imagelist editor.
  9. Shell menu triggers. Previously available in the forum. If you have it, delete 'Shell menu triggers' folder.
  10. Bookmarks and saved searches.
  11. Other changes in QM user interface: docked Find dialog, changes in menus and toolbars, changed some control ids, changed some colors, icons, added Back and Forward buttons.
  12. Updated WINAPI reference file. Added W function versions. Added wininet functions, and removed inet typelib. Removed some rarely used functions: cryptography, XML, some other. Added WINAPIV reference file containing Vista declarations.
  13. New functions and interfaces: ICsv, IXml, IXmlNode, empty, SetEnvVar, GetEnvVar, SetCurDir (replaces ChDir), GetCurDir (replaces CurDir), CB_Add, LB_Add, str.Swap, WaitForThreads, GetIpAddress, ScreenColors, WinA (find window containing acc. object), Drag, outb (display binary data), RunConsole2, FileCopy, FileMove, FileRename, FileDelete, CloseWindowsOf, MsgBoxAsync, __ImageList, __Hicon.
  14. New dll functions: StrCompare, StrCompareN, MemCompare, GetUserInfo (user/computer name), GetFullPath (from relative), GetQmCodeEditor, InsertStatement, and more. To find all the new functions in the Help topic, search for "2.3.0".
  15. New predefined variables: _unicode.
  16. New operators: @ (converts string to Unicode UTF-16).
  17. More options in: str.unicode, str.ansi, findrx (flag 32), str.replacerx (flag32), rget, rset, str.escape, interface (optional arguments; comments; multiple function calls in single statement), type (comments), out (colors, links), len (supports BSTR, VARIANT, word*), newitem (temporary), lef/rig/mid/dou (return), opt/getopt (hungwindow), zip (no compression), GetFileIcon (cursor, custom size), RegWinClass, MainWindow, MessageLoop, OpenSaveDialog (hwndowner), OnScreenDisplay (picture).
  18. Added QM item type - file link. Added related options to qmitem, str.getmacro, newitem and in other places.
  19. Added QM item property - temporary.
  20. New triggers: QM events -> File link run, End thread.
  21. Special folders more reliable. Several new special folder names and aliases.
  22. Exe: Any files can be added to resources using syntax ":resourceid filepath". For example, you can use jpg and gif images in exe dialogs. Previously it worked only with bmp and ico files and only with some functions. Now it works with most functions that load a file, including str.getfile. Also now can add cursor resources.
  23. Toolbars: If you drag and drop a file onto a program icon, you can choose to open the file in that program.
  24. Name completion. Partially type an identifier (function, etc) and press Ctrl+Space or use menu Edit -> Members.
  25. Indented multiline strings.
  26. Works better: Loading files and HTML into a web browser control. Some optimizations in win, child, acc and htm. Ftp and Http functions don't show error descriptions in QM output; added Ftp/Http member variable lasterror, which will contain error description if a function failed (returned 0). Toolbars show nondistorted icons of sizes other than 16/32, if icons of that size are available.
  27. Printing. Menu File -> More -> Print.
  28. You can change backup folder path in Options -> Files.
  29. New menu option: /multicolumn.
  30. Changed behavior of "record window command" hotkey. Now shows popup menu with several choices. Removed "record mouse command" hotkey.
  31. Exe: QM Pro license now is not needed. Currently there are no other features that would require Pro license.
  32. Bug fixes.

Below are some changes since QM 2.3.0.0. Also included above.

 

QM 2.3.0.1

  1. Running Items list.
  2. Search Help and Tools.
  3. More changes in QM UI.
  4. ANSI to Unicode converter. In Options -> General.
  5. Name completion.
  6. Indented multiline strings.
  7. New trigger: QM events -> End thread.
  8. Special folders more reliable. Several new or alias special folder names.
  9. Ftp and Http functions don't show error descriptions in QM output. Added member variable lasterror, which will contain error description if a function failed (returned 0).
  10. Bug fixes.

 

QM 2.3.0.2

  1. Local and class variables added to members lists.
  2. Open items can be restored. Menu Edit -> Active Items -> Open Multiple.
  3. Other small enhancements recently suggested by QM users.
  4. Added to IXml: FromFile argument defaultXML. CreateXml flag 8. ToFile file can be empty.
  5. Shell menu triggers now are installed with QM.
  6. Printing. Menu File -> More -> Print.
  7. Slightly changed RegWinClass behavior, and fixed 'invalid callback function' bug.
  8. Text files can be opened in QM using command line.
  9. Toolbars: If you drag and drop a file onto a program icon, you can choose to open the file in that program.
  10. Bug fixes.

 

QM 2.3.0.3

  1. Added to IXml and XmlNode: ValueBinarySet, ValueBinaryGet, SetAttributeInt, AttributeValueInt, Move, ChildCount. With Path and Child can be used filter expressions.
  2. Custom icons of QM items.
  3. Some changes in Icons dialog.
  4. Imagelist editor.
  5. Bookmarks and saved searches.
  6. Back and Forward buttons.
  7. New functions, more options in some functions.
  8. Exe: Any files can be added to resources using syntax ":resourceid filepath".
  9. Bug fixes.
  10. And more.

 

QM 2.3.0.4 - 2.3.0.5

  1. Fixed several bugs.
  2. Exe: QM Pro license now is not needed.

 

Compatibility with previous Quick Macros versions

  1. Unicode. If QM is running in ANSI mode, you will not have compatibility problems. It is running in ANSI mode if you upgraded QM from an older version. It is running in Unicode mode if you did not use QM before, or uninstalled it before installing new version. You can switch mode in Options. It is recommended to use Unicode. After switching to Unicode mode, you should convert your old macros that contain international characters. The Convert button helps you to do it. Read more.
  2. This QM version does not run on Windows 98/Me. Exe files created with it too.
  3. QM user interface. Changed some control types, ids, positions, etc. If you have macros that interact with them, they may stop working. Changed code editor control type. Read more here.
  4. Added some QM extensions that previously were available in the forum. You should delete downloaded extensions. While not deleted, QM shows warnings.
  5. QM item icons. Everything will work but some icons in menus, toolbars and dialogs will be different than before. Read more.
  6. Updated WINAPI reference file. Removed some rarely used declarations.
  7. New functions. If you have functions with same names, rename them. On name conflicts QM shows warnings or errors in output.
  8. Changed behavior of some functions in some specific cases. With rget, rset, slightly changed behavior when a data type is explicitly specified. With str.escape, flag 2 now is ignored. With out, if text begins with <>, it is interpreted as containing formatting tags (colors, links, etc), and found tags are removed.
  9. win, child, acc, htm. Changed search order. Now at first retrieves visible windows/controls, then hidden. win and child may find another control if matchindex is specified. Retrieved arrays of handles also may be ordered differently. This may happen only if some of matching windows or controls are hidden. Use window/control finder dialogs to fix the code.
  10. Now uses different way to get paths of special folders. Normally this should not change anything, but if previously some paths were incorrect or could not be retrieved, now they will be correct.

QM 2.2.1 (January 1, 2008)

Exact version: 2.2.1.5

 

Summary: Many bug fixes. New functions, new options in existing functions. Better reliability of keyboard and clipboard commands.

  1. Fixed 2.2.0 version bug: QM does not run on Windows XP without SP. QM-created exe files too.
  2. Fixed 2.2.0 version bug: If using a locale where , is decimal separator, QM may start to improperly interpret numbers containing . . In exe too.
  3. Fixed 2.2.0 version bug: On some Vista computers, scheduled tasks are not updated after editing.
  4. Fixed 2.2.0 version bug: VbsExec and other VBScript functions don't work.
  5. Fixed bug: On computers where hardware Data Execution Prevention is enabled for all programs, don't work dialogs and other code that uses callback functions.
  6. Fixed mac and DynamicMenu bugs with synchronous menus: Returns 0 if first line item selected. Does not wait if a menu is already shown.
  7. Fixed bug: dll functions with double arguments give exception if passed certain expressions.
  8. Fixed bugs in wait K/M in exe: On Windows 98 may not work. On Vista may not work first time in thread.
  9. Fixed bugs in: def (strings cannot have ; characters), clo (some windows crash), toolbars (sometimes are activated wrong windows), OnScreenRect (Vista may hang if the rectangle is large, eg 10000x10000), mouse triggers (incorrect hit test codes), ifk (on Vista sometimes does not work), wait K/M (the same as with ifk).
  10. Improved synchronization of key and clipboard functions. Better reliability, especially in stress conditions (low memory, busy CPU, etc).
  11. New options used with opt (keysync) and getopt (slowkeys, slowmouse, keymark, keysync).
  12. Better wait precision (2 ms).
  13. Make exe: Can compress.
  14. Dll functions: 1. Supports optional arguments. 2. Supports ... to specify variable number of arguments.
  15. Added easier way to add ARRAY elements.
  16. New functions: str.stem, str.getstruct, str.setstruct, ARRAY.sort, shuffle.
  17. New user-defined functions and classes: OsdHide (hide on-screen display), GetVirtualScreen (rectangle that contains all monitors), ChooseIconDialog, Htm.ClickAsync, str.RandomString, str.Guid, str.ReplaceInvalidFilenameCharacters, str.GetFilenameExt, str.FilenameWithDate, GetFilesInFolder, GetDrive, GetDrives, TagWindow, FindTaggedWindow, IsFunctionRunning, MouseButtonX, CenterWindow, EnsureWindowInScreen, XyMonitorToNormal, XyNormalToMonitor, MoveWindowToMonitor, FirstWindowInMonitor, SetWindowState, HtmlDoc class (HTML parsing), several new functions and classes in System\Functions\Programming. Some of these functions previously were available in the forum. You may have to delete duplicates.
  18. New dll functions exported by QM: GetProcessExename, RealGetNextWindow, MonitorFromIndex, MonitorIndex, AdjustWindowPos, RealGetKeyState, Round, RandomNumber, RandomInt.
  19. Added predefined variable _monitor that controls where various dialogs are displayed. Some functions modified to support it.
  20. More options in: StartProcess (window state), GetWorkArea (flags, monitor), OnScreenDisplay (flag 8 - hide when macro ends, flag 16 - raw x y, flag 32 - place by the mouse, supports _monitor), ShowDialog (flag 64 - raw x y, supports _monitor), SetWinStyle (flag 16 - update client), wait S (can be used handle, can wait until something changes in the window or rectangle), toolbars (3D buttons), key (can return virtual-key codes), IntGetFile/Http.GetUrl/Http.FileGet (reponseheaders), Http.PostFormData/Http.Post (inetflags, reponseheaders), RegisterComComponent (can register 64-bit dlls, flag 8), DT_GetControls, DT_SetControls, win (can get all matching windows), child (the same), list (owner window), inp (owner window), inpp (owner window).
  21. New categories: sysinfo, multimedia.
  22. Email functions: 1. Support secure connection (SSL). To use secure connection, check the checkbox in Outlook Express Accounts or QM Email Settings. 2. Account settings can be specified in code.
  23. Changed ShowDialog position algorithm (differently depends on monitor, styles, hwndowner, etc).
  24. Slightly changed behavior of: win (prefers visible windows), child (does not prefer visible windows if matchindex is nonzero), _create.
  25. Works better: ifk on Vista, scan with icons.
  26. Log loaded dlls and type libraries.
  27. The Find dialog supports AND and OR.
  28. Changed double to string conversion (str operator = and other operators). Now the string never has decimal point at the end. The string can have more digits (better precision). The exponent sign is uppercase. The exponent does not include 0 at the beginning. If previously the string could look like 1.e+016, now it looks like 1E+16.
  29. Toolbars: /bsiz works with all styles, and added minwidth.
  30. Other bug fixes and optimizations.

Below are changes since QM 2.2.1.0. Also included above.

 

QM 2.2.1.1

  1. Fixed bugs in (see above): clo, toolbars, OnScreenRect, mouse triggers, wait K/M in exe.
  2. Fixed 2.2.1.0 version bug: Dialog Editor sometimes shows random pages of multipage dialogs.
  3. New functions: GetVirtualScreen, ChooseIconDialog, Htm.ClickAsync, RealGetKeyState.
  4. More options in (see above): SetWinStyle, toolbars, key, IntGetFile, Http.GetUrl, Http.FileGet, Http.PostFormData, Http.Post, RegisterComComponent.
  5. Slightly changed behavior of (see above): win, child.
  6. Works better (see above): ifk, scan.
  7. Log loaded dlls and type libraries.

QM 2.2.1.2

  1. Email functions: 1. Support secure connection (SSL). 2. Account settings can be specified in code.
  2. New functions: str.getstruct, str.setstruct.
  3. The Find dialog supports AND and OR.
  4. Slightly changed behavior of: _create.

QM 2.2.1.3

  1. Fixed bug: On computers where hardware Data Execution Prevention is enabled for all programs, don't work dialogs and other code that uses callback functions.
  2. Fixed bug: dll functions with double arguments give exception if passed certain expressions.
  3. Fixed QM 2.2.1.2 bugs in str.getstruct and str.setstruct.
  4. Dll functions: 1. Supports optional arguments. 2. Supports ... to specify variable number of arguments.
  5. Added easier way to add ARRAY elements.
  6. Changed double to string conversion (see above).
  7. New functions and classes: Round, RandomNumber, RandomInt, str.RandomString, str.Guid, str.ReplaceInvalidFilenameCharacters, str.GetFilenameExt, str.FilenameWithDate, GetFilesInFolder, GetDrive, GetDrives, TagWindow, FindTaggedWindow, IsFunctionRunning, MouseButtonX, ARRAY.sort, ARRAY.shuffle, HtmlDoc class.
  8. More options in (see above): win, child.
  9. Other bug fixes.

QM 2.2.1.4

  1. New functions, classes and variables: GetProcessExename, RealGetNextWindow, MonitorFromIndex, MonitorIndex, AdjustWindowPos, _monitor predefined variable, CenterWindow, EnsureWindowInScreen, XyMonitorToNormal, XyNormalToMonitor, MoveWindowToMonitor, FirstWindowInMonitor, SetWindowState.
  2. More options in: GetWorkArea, OnScreenDisplay, ShowDialog, list, inp, inpp.
  3. Some functions can show dialog in specified monitor. Read above.
  4. Changed ShowDialog position algorithm.
  5. Toolbars: /bsiz works with all styles, and added minwidth.
  6. Bug fixes.

QM 2.2.1.5

  1. New functions: str.stem.
  2. Bug fixes.

QM 2.2.0 (June 25, 2007)

Exact version 2.2.0.11

 

Summary: Runs well on Windows Vista. New winapiqm.txt. Macros can run in separate process. New functions, enhancements and new options in existing functions and other features.

  1. QM now is compatible with Windows Vista, 32-bit and 64-bit versions. Read about it here. Also you may want to read about creating exe files for Vista.
  2. Updated winapiqm.txt reference file (WINAPI). Also, in the QM forum you can find and download another reference file that contains more declarations.
  3. Enhancements related to reference files: 1. Not error to explicitly declare something that is implicitly declared using a reference file. 2. Removed "optional" settings from Options (now everything from WINAPI is always available). 3. Reduced memory usage. 4. Can include other files. 5. Can log extracted declarations.
  4. Enhancements related to user-defined types: 1. Anonymous types within types. 2. Base type without member name.
  5. Enhancements related to keyboard and mouse triggers: 1. Can be used low level hooks (optionally), which make triggers more reliable and allow to use system hot keys. 2. A trigger key can be pressed repeatedly without releasing modifier keys.
  6. New functions: interface IStringMap, RunConsole, lock, str.dospath, str.addline, ReceiveMail, #exe addfile, ExeExtractFile, ExeGetResourceData, variable _win64.
  7. More options in: Dir.GetSize (can get folder size), str.findreplace (replace null char), mes (Vista shield icon), opt keymark, rset (delete key if empty), web, wait (multiple handles), shutdown (thread handle/id), str.expandpath (unexpand), EnumQmThreads (thread name), OnScreenDisplay (wrap), newitem (encrypted), run (run as admin), _getactive (ROT moniker), toolbar hook (WM_INITDIALOG), Dir.FileName (DOS format), ShutDownProcess, EnumProcessesEx, win (matchindex, exename), child (matchindex), acc (matchindex).
  8. Small changes in: rget (ini files), wait x H (returns -1 on error), Speak (changed implementation; some changes in behavior with flag 2), wintest (class is not required for hidden windows).
  9. Several new dll functions exported by qm.exe.
  10. Macro and function properties: "Run in separate process", "Run As".
  11. Popup menus: Expandable file folders, bitmaps and more.
  12. Special folders: 1. Can be used CSIDL constants. 2. Environment variables are expanded recursively.
  13. Better supports ActiveX controls. In the Type Libraries dialog added Controls view.
  14. Make exe: 1. Can be specified custom manifest file. 2. The macro can be in a folder or not. 3. Adding files to exe (see #exe addfile, ExeExtractFile, ExeGetResourceData).
  15. For compatibility with Windows Vista and some programs, key and clipboard commands now use different synchronization methods than in previous versions. In most cases, these commands will work as well as previously, but some macros may require some corrections (wait, err). Also, after copy/paste commands, the clipboard contents now is restored immediately.
  16. Pasting (outp and str.setsel) now works in console windows too.
  17. These features are no longer supported in exe: wait x KF (wait for key-down and eat), share (shared memory). They can be used only in QM. In exe they would cost too much, especially on Windows Vista and 64-bit.
  18. These features are now supported in exe: shutdown -1 (exit exe), Exit (exit exe). Fixed shutdown -7 bug.
  19. In exe, all text and function names now are encrypted.
  20. Now maximal text length is 4 MB for menus, toolbars and TS menus. For other items it remains 32 KB.
  21. A global hot key to show Threads dialog can be specified in Options.
  22. Menu Edit -> Wrap Lines.
  23. Options -> Files -> Always Add These Shared Files.
  24. Toolbars: 1. Some changes in hook functions (WM_INITDIALOG, etc). 2. New toolbar options /glass, /font, 1-pixel border. 3. Setting text color does not disable visual styles. 4. If you use GetWindow or other Windows API function to get toolbar owner window, you should change it to GetToolbarOwner, because GetWindow will return incorrect result.
  25. File triggers: DOS filenames are no longer returned for Added and Modified events. You should modify Include/Exclude fields that contain DOS filenames.
  26. Other enhancements and bug fixes.

Below are changes since QM 2.2.0.2 (also included above).

 

QM 2.2.0.3 - 2.2.0.5

  1. Popup menus: Expandable folders, bitmaps and more.
  2. Several new dll functions exported by qm.exe.
  3. More options in: shutdown, str.expandpath, EnumQmThreads, OnScreenDisplay, newitem.
  4. Small changes in: wintest.
  5. Special folders: Can be used CSIDL numeric values. Environment variables are expanded recursively.
  6. Global hot key for Threads.
  7. Fixed bug: ARRAY(Interface*) is declared as ARRAY(Interface).
  8. Menu Edit -> Wrap Lines.
  9. Other enhancements and bug fixes.

QM 2.2.0.6 - 2.2.0.7

  1. Found solutions or workarounds for many Vista issues. Read below.
  2. Options: Run As. You can set QM to run as administrator, uiAccess or normal. Also you can set it for separate macros.
  3. Macro and function properties: "Run in separate process", "Run As".
  4. Make Exe: The macro can be in a folder or not. Does not create/use exename_res.dll.
  5. Drag and drop now works on Vista.
  6. New functions: lock, str.dospath, str.addline and several dll functions exported by qm.exe.
  7. GetWindowUacInfo replaced to GetProcessUacInfo.
  8. More options in: run (run as admin), web, _getactive (ROT moniker), toolbar hook (WM_INITDIALOG), Dir.FileName (DOS format).
  9. Solved problems with scheduled tasks on Vista.
  10. Popup menu expandable folders: include/exclude files.
  11. Options -> Files -> Always Add These Shared Files.
  12. Fixed bug: destructors were called for union members.
  13. Other enhancements and bug fixes.

QM 2.2.0.8

  1. Fixed QM 2.2.0 bug: on exception QM exits.
  2. Computer unlocking now works on Vista.
  3. New functions: ReceiveMail, ProcessNameToId2.
  4. More options in: ShutDownProcess, EnumProcessesEx.
  5. Popup menu: Position can be specified with mac. More expandable folder flags.
  6. Other enhancements and bug fixes.

QM 2.2.0.9 - 2.2.0.11

  1. Better supports ActiveX controls. In the Type Libraries dialog added Controls view.
  2. Adding files to exe. See #exe addfile, ExeExtractFile, ExeGetResourceData.
  3. More options in: win (matchindex, exename), child (matchindex), acc (matchindex).
  4. Popup menu expandable folders: /filterfolders. Note: flag 64 (apply include/exclude to folders) removed in 2.2.0.10, and instead added /filterfolders.
  5. Vista: when used to find a toolbar, win now correctly recognizes the real owner window.
  6. New toolbar options /glass, /font, 1-pixel border. Setting text color does not disable visual styles.
  7. Themed popup menus on Vista.
  8. More options in menu bar triggers.
  9. Other enhancements and bug fixes.

QM 2.1.9 beta (September 29, 2006)

Exact version 2.1.9.1

 

Summary: Can create exe files from macros. Several new functions and new options in existing functions. Different dialog procedure.

 

Changes since 2.1.9.0

  1. Make exe. Can create standalone programs from macros and functions.
  2. New directives: #out, #warning, #error, #exe. More options in #opt (nowarnings).
  3. New functions: Http.PostFormData.
  4. New predefined variables and constants.
  5. More options in: ShowDialog (icon, menu, hot keys, resources), dll (delay-loading), out (clear), scan (handle, resource), LogFile, IntGetFile (callback function), Http.FileGet (callback function), Http.GetUrl (callback function), Curtain (returns window handle), dir and Dir.dir (finds drives).
  6. Several new dll functions exported by qm.exe.
  7. In dialog procedure now it is not necessary to call DT_Init and other DT_x functions.
  8. File triggers more reliable. Fixed 2.1.9.0 bug with network folders.
  9. Changed End-macro hot key behavior.
  10. Other enhancements and bug fixes.

See also:

What's new in versions 2.1.0 - 2.1.8