What's new in versions 2.1.0 - 2.3.6
QM 2.3.6 (August 26, 2013)
Exact version: 2.3.6.5.
Main new features
- Supports DPI-scaled windows.
- Bug fixes.
All new features
- Supports DPI-scaled windows.
- New functions:
- New in:
- mov: option + (move and resize).
- end: flag 32 (temporary).
- Bug fixes:
- QM 2.3.5 bug: sometimes QM crashes when collapsing a folder.
- QM 2.3.5 bug in Dialog Editor: when adding control, sometimes moves other control.
- Sometimes incorrectly records mouse movements.
- When ending debug mode, sometimes executes some more code.
- Autotext triggers: sometimes does not work if not using low level hooks.
- Sometimes QM or some running thread stops working after creating exe.
- In QM 2.3.6.3-5 fixed bugs in Sqlite.Open. Added more declarations in ref __sqlite. Fixed bugs in demo macros.
- And more.
- What can be incompatible with previous versions:
- In DPI-scaled windows old QM would record mouse clicks with incorrect coordinates. In some cases the macro would work anyway, but now it will not work, need to record again. Same with all mouse and window functions that use coordinates (x, y, width, height) in DPI-scaled windows.
QM 2.3.5 (July 21, 2013)
Exact version: 2.3.5.12.
Main new features
- Can run as portable app.
- Can compile and execute C# and VB.NET code.
- Several new functions. Improvements in some functions and other features.
- Bug fixes.
All new features
- Can be installed in a USB drive and run as portable app.
- Class CsScript, functions CsExec, CsFunc, VbExec, VbFunc. Compiles and executes C# or VB.NET code.
- Other new functions and classes:
- PerfFirst, PerfNet, PerfOut. Shows time spent executing code.
- CompareFilesInFolders, InputBox.
- More.
- DT_SetAccelerators (dialog hotkeys), TriggerInfoAutotext, MessageLoopOptions, GetNetRuntimeFolder.
- __ComActivator and __ComActivator_CreateManifest. Use COM and .NET COM components without registry.
- __SharedMemory. Memory that can be used by multiple processes.
- GetCallStack, IsValidCallback.
- New in:
- GetFilesInFolder can get file size or time; easy to sort.
- opt: nowarningshere, noerrorshere. In 2.3.5.9 fixed noerrorshere bug: err does not work in the function.
- end: flag 16 (append last dll error string).
- tok: Can trim blanks, etc.
- str.ucase, str.lcase: can convert part of string.
- New predefined variable _portable.
- New special folders $drive$ and $temp qm$.
- str.setfile and most other QM file-write functions: auto-creates parent folder.
- IXml, IXmlNode: More features in Path and some other functions.
- Make exe: Adds text of macros from string constants like "macro:MacroName". Read more.
- And more. To find all, search for string 2.3.5 in this Help file and in QM.
- Autotext (TS menu): Supports items that begin with a delimiter character.
- Shell menu triggers: Improvements and optimizations.
- File saving and backup: Improvements and optimizations.
- Recording: Now also records mouse wheel and X1/X2 buttons.
- Unlock computer: can run a program.
- Some changes in VARIANT and ARRAY.
- Fixed bugs and removed some limitations in assignment VARIANT=ARRAY.
- Converts array type in assignments ARRAY(BSTR)=ARRAY(str), VARIANT=ARRAY(str) and vice versa.
- VARIANT better supports long (64-bit integer) type. Added member llVal etc. In assignment VARIANT=long, stores the value as VT_I8 (previously VT_DECIMAL). And more.
- In assignment VARIANT=&Function, stores the value as VT_I4 (previously VT_I4|VT_BYREF).
- Multiline strings in the code editor: String color. F-string variables also colored correctly.
- Some more tooltips and polishing in Options, Find and other dialogs.
- Bug fixes:
- Memory leaks.
- Mouse double movement triggers don't work.
- Keyboard triggers: with some macros, after Alt+key or similar trigger, for several seconds behaves like if Alt is pressed.
- Often fails to find accessible object in Firefox first time if without waiting.
- And more.
- What can be incompatible with previous versions:
- If you have functions with same names as the new functions, will need to rename or delete them.
QM 2.3.4 (February 2, 2013)
Exact version: 2.3.4.8.
Main new features
- Window text capturing.
- Improvements in many functions and other features.
- Bug fixes.
All new features
- WindowText class. Captures window text, clicks an item, etc. Look in floating toolbar -> Windows, controls.
- New functions:
- New in:
- Dialogs: easy tooltips. Look in Dialog Editor.
- F strings: Coloring etc, like in other code. Supports strings in variable fields, enclosed in `.
- win, child: New syntax with CSV string instead of x y. Can find window containing specified child window. child supports Windows Forms (.NET) control name, accessible name and more.
- but: Supports Windows Forms (.NET) controls better.
- wait WT: wait for specified window name.
- run: added flag to run 64-bit system programs.
- bee: Supports ":resId file.wav" syntax that allows to easily add the wav file to exe.
- #exe addfile: supports any resource type.
- Make exe: can add version info.
- IStringMap, ICsv, IXml: Supports _create. Added member functions to set flags.
- ICsv: New functions Find, AddRow2, FromArray, ToArray.
- Database: CsAccess and CsExcel support file formats used by Office 2007+.
- Supports png images in dialogs etc.
- File triggers: Can watch only files, only folders, or all.
- Window class name in all QM functions and triggers can be with wildcard characters. Previously would need a flag.
- New QM output tags: mes, out.
- More options in some other functions.
- It is possible to use COM components without registration.
- Exe: don't need to register QM COM components on other computers. These are mailbee.dll (used by QM email functions) and arservicesmgr.dll (used with Services functions). Need just these dlls in exe folder.
- Optimizations, changes, etc:
- Better Windows 8 compatibility.
- Removed qm64 process on 64-bit Windows.
- Simplified floating toolbar dialogs. Added tooltips.
- Recording: Removed some options. Added 'Slow' option. Generates more comments. And more.
- Removed "QM always on top" view. Instead you can use floating output and status bar windows.
- Most global run-time options moved from Options dialog to function RtOptions.
- Make exe: Removed 'Compress' option, because of possible problems with antivirus software.
- Macros that run in separate process now by default use a small .qmm file instead of .exe file.
- QM enables Chrome accessible objects.
- Bug fixes:
- F strings, when used as a function argument: error or incorrect result if [digits] used in a variable. Example: act F"{a[0]}".
- Operator or: If first operand nonzero, returns its value (must be 1). It's not a problem in most cases, because the value itself is rarely used. Another bug - does not work if first operand is double. Added warning for yet another bug that cannot be fixed.
- DaysInMonth: no leap year correction at 100/400 years. Also in DateTime functions AddMonths and AddYears.
- TimeSpanFromStr: may incorrectly parse string if without days.
- Process triggers: if 'Already running' selected, the macro runs before initializing QM extensions and user startup functions.
- Keyboard triggers: don't work repeated triggers with modifier keys.
- And more.
- What can be incompatible with previous versions:
- If you have functions with same names as the new functions, will need to rename or delete them.
- Removed function share.
- If you use the 'Favorite dialogs' feature (in floating toolbar), may need to rebuild your favorites, because there are changes in dialogs.
Below are some changes since QM 2.3.4.3. Also included above.
QM 2.3.4.4-8.
- run: added flag to run 64-bit system programs.
- Macros that run in separate process now by default use a small .qmm file instead of .exe file.
- Supports png images in dialogs etc.
- QM enables Chrome accessible objects.
- QM 2.3.4.7 fixed QM 2.3.4.6 bug: QM always runs in Unicode mode, even if you uncheck it.
- QM 2.3.4.8 fixed some small bugs.
QM 2.3.3 (March 10, 2012)
Exact version: 2.3.3.7
Main new features
- New UI object (Acc etc) functions. Other new or improved functions.
- New or improved information features: annotations, errors, function info/help, coloring, key comments.
- New autotext list (TS menu) features.
- Bug fixes.
All new features
- New in UI objects:
- acc flags: 0x2000 - search only in web page (faster). 0x4000 - use more properties, including HTML attributes.
- New Acc functions: Find (replaces acc), FindFF (faster, Firefox/Chrome), WebScrollTo, WebAttribute, CbSelect and more.
- New class FFNode. Firefox/Chrome HTML nodes.
- New Htm functions: FromAcc, FromXY, DocProp.
- New functions and classes:
- Class __Settings. Manages settings that you use in a macro.
- New str functions: UniqueFileName, LimitLen, GetClipboardHTML.
- New HtmlDoc functions: SetOptions, Delete.
- New ExcelSheet functions/options.
- ExeFullPath, ExeParseCommandLine, ExeQmGridDll, MakeExeCloseRunning, DT_SetTextColor, DT_SetBackgroundColor, DT_SetBackgroundImage, OutStatusBar, TriggerInfoTsMenu, EndThread.
- paste. Alias for outp.
- New options and improvements in:
- key: can repeat a key. Text (key "text") does not depend on state of Caps Lock, Shift, Ctrl, Alt, Win.
- ifk, iff, ifa, ifi: can be used as functions.
- scan, wait S: can find all.
- opt, getopt: keychar.
- ShowDialog: flag 128 - hidden.
- tim: flag 2 - one-shot timer.
- IStringMap: AddList and GetList support CSV.
- StrCompareEx, ICsv.Sort, DlgGrid.Sort and ARRAY.sort: flag to sort as date.
- run, getopt, newitem, AutoPassword, QmHelp, CaptureImageOrColor, __Font.Create, RunAs, Sqlite.ToQmGrid, str.fix, str.flags, Htm.Attribute.
- More options in string functions that use delimiter characters.
- String formatting functions: %S, %C, %m, %#s.
- New in run-time errors:
- Defined constants for errors.
- Added menu Run -> Show RT Errors. Read more in err help.
- For user-defined functions, shows errors in function help.
- end: flag 8 (warning).
- opt, getopt: nowarnings.
- New in function help and tags:
- Some new tags and other features.
- Better formatting of function help.
- Function help editor.
- New in status bar:
- Shows more function info. Colored.
- Shows function info when caret is in its arguments.
- Shows function info when you click a function in popup lists.
- You can set status bar text. Use OutStatusBar. Supports tags, like with out.
- Can show > 2 lines. Vertical scrollbar. Wraps lines.
- Added menu. You can turn off mouse info, etc.
- New in code editor:
- Can be set style for variables.
- Member functions now are colored.
- Shows modified lines in selection bar.
- 'Find' dialog: Highlights all if you click 'Find Text' button with Ctrl. Added 'Dialog 2' button (use two Find dialogs).
- And more.
- New in autotext lists (TS menus):
- Text trigger. Don't need a key trigger before typing text.
- Options for posfix.
- Shows popup list if several items match.
- And more.
- New in recording:
- Records text keys as characters, not as key codes.
- Adds comments with decoded keys.
- New in tool dialogs:
- The Keys dialog easier to use.
- New dialog: Edit application command keys (floating toolbar -> more tools). You can change or disable actions assigned to keys such as Back, Mute, Calculator.
- Updated documentation of many functions.
- Can show annotations with short function descriptions. Menu -> Help -> Annotations.
- Added type declaration character ` for VARIANT.
- New triggers: QM events -> QM show, QM hide, Recording ended.
- Hybrid paste.
- More templates in menu -> File -> New -> Templates.
- New in toolbar right-click menu: Hide if Fullscreen Window. Super On-Top (replaces the "Toolbars: on-top" checkbox in Options that previously would be applied to all free toolbars).
- By default hides private Running items, eg QM extensions (System). To unhide, right click a folder or empty space.
- Optimizations.
- Bug fixes:
- If base class is declared as private (class X :--Y ...), functions of the inherited class cannot access members of the base class.
- QM hangs when using some user-defined classes, like this: class CFont :-GdiObject'g.
- pointer._new(variable) returns incorrect value. Same with _resize.
- wait ... S "macro:..." does not automatically add the macro to exe.
- Fixed problems with processes that are started using short path (eg c:\xxxxxx~1\yyyyyy~2.exe). Then in some cases triggers and process functions did not work as expected, because QM used short path. Now QM always uses long path. Also fixed problems with long process filenames on Windows 2000.
- getopt(speed 4) always returns 0.
- Htm.Attribute flags ignored.
- Gets incorrect location of some html elements in IE8/9: when zoom is not 100%; in some frames/iframes; some AREA elements.
- acc does not find CLIENT of frames/iframes in Internet Explorer.
- acc fails if window is accessible object and used > 8 arguments.
- acc in some windows is too slow if flag 128 (reverse).
- key "text" may type incorrect text if the active window uses a non-default keyboard layout.
- Array elements cannot be used as some arguments of some QM intrinsic functions.
- Cannot return some types (e.g. Acc) from user-defined functions. Exception or some other error.
- On some XP computers does not show "Temporarily Unlock Computer" configuration dialog.
- Sometimes does not add tray icon at Windows startup.
- QM tray icon problems on Windows XP if taskbar is auto-hide.
- ProcessNameToId does not support special folders. Also third parameter of win.
- Cannot be used [0] in F strings, like F"{s[0]}".
- Mouse double click triggers don't always work if not using low level hook.
- Temporarily Unlock Computer: sending Ctrl+Alt+Delete does not work on Windows Vista/7.
- Accessible object triggers often don't work on 64-bit Windows.
- str.escape bugs.
- _getactive may return object of incorrect type when wildcard used.
- Passing COM interface variables to user-defined functions: if type different, later does not release the object.
- QM crashes if newitem called while editing a macro name or called repeatedly with flag 8.
- tim: if there are multiple timers, cannot stop some of them.
- findl: does not work if n omitted.
- And more.
- What can be incompatible with previous versions:
- If you have functions with same names as the new functions, will need to rename or delete them. Same with classes and other declarations.
Below are some changes since QM 2.3.3.4. Also included above.
QM 2.3.3.5 - 7
- New ExcelSheet functions/options.
- New functions: str.LimitLen, str.GetClipboardHTML, Acc.GetChildObjects, MakeExeCloseRunning, EndThread.
- Autotext list (TS menu) option /m (confirm).
- Hybrid paste.
- Added keyword paste, as alias for outp.
- IStringMap: AddList and GetList support CSV.
- StrCompareEx, ICsv.Sort, DlgGrid.Sort and ARRAY.sort: flag to sort as date.
- HtmlDoc: with SetOptions flags 1 or 2, may work slightly differently than in earlier QM 2.3.3 versions. Please test your code.
- More templates in menu -> File -> New -> Templates.
- By default hides private Running items, eg QM extensions (System). To unhide, right click a folder or empty space.
- More options in string functions that use delimiter characters.
- New in toolbar right-click menu: Hide if Fullscreen Window. Super On-Top (replaces the "Toolbars: on-top" checkbox in Options that previously would be applied to all free toolbars).
- Some bugs fixed. QM 2.3.3 bugs: 1. Incorrect selection bar color. 2. str.gett works only with ASCII string. 3. Bad autotext synchronization in some cases. 4. HtmlDoc.SetOptions(2) does not work in exe. 5. Triggers don't work in some windows after restarting QM. 6. And more.
QM 2.3.2 (August 4, 2010)
Exact version: 2.3.2.8
- Variables in strings.
- New functions and classes. Many previously available in the forum.
- Class MenuPopup and function ShowMenu.
- Classes Sqlite and SqliteStatement. Sqlite database functions.
- Class DateTime and functions TimeSpanFromParts, TimeSpanFromStr, TimeSpanGetParts, TimeSpanGetPartsTotal, TimeSpanToStr, DaysInMonth.
- Class __Tcc. Compile C code. Call functions from QM. Make exe, dll.
- str functions LoadUnicodeFile, SaveUnicodeFile, DateInFilename, SqlEscape, FromGUID.
- ExcelSheet functions SelectCell, SelectRange, GetSelectedRange, GetUsedRange, RunMacro.
- HtmlDoc function FindHtmlElement.
- Functions FileTypeRegister, FileTypeUnregister, FileTypeAddVerb, FileTypeRemoveVerb, FileTypeSetDefaultVerb.
- Functions GetIdleTime, WaitIdle.
- Functions SelStr, SelInt.
- Functions HtmlToWebBrowserControl, RemapKeyboardKeys, outw, MakeInt, IntCheckConnection (alias for IntPing), Http.Get.
- New dll functions q_printf, q_sort, iscsym, DetectStringEncoding, UnloadDll, ConvertSignedUnsigned, StrCompareEx, QmCodeToHtml.
- Categories keytext (replaces io), _debug, _operator, _other.
- Directive #ret.
- GDIP reference file. GDI+ flat API declarations.
- Several new ICsv functions. Some functions have more options. All functions can be used in exe.
- QM_Grid control enhancements. Class DlgGrid. Possible incompatibility: changed some QM_Grid control features. If you used the control in your macros, please test them.
- Ftp functions FileGetStr, FilePutStr, SetProgressDialog, SetProgressCallback.
- Http functions SetProgressDialog, SetProgressCallback, PostAdd, Get (replaces FileGet).
- More options in:
- category. Can be added class members and other strings.
- scan. Find not exact match, search in background window, in bitmap, and more.
- wait. Supports custom cursors. Look in the Wait dialog.
- str.encrypt, str.decrypt. LZO compression. MD5 of file.
- Crc32. CRC of file.
- act, str.escape, str.setfile, OnScreenDisplay.
- #opt hidedecl.
- type. Easier nonstandard alignment.
- ARRAY. One new function (insert). More options in some functions.
- str.getstruct. Supports members of any type.
- shutdown. Flags 4 and 8 (synchronous).
- __Font.Create. Angle, template.
- Ftp.Connect. Passive.
- Ftp.FileGet, Ftp.FilePut, Http.Post, Http.PostFormData, IntGetFile. All these functions now can: 1. Show progress dialog. 2. Use callback function. 3. Run in other thread. 4. Download to file.
- Http.PostFormData. Can be used Http.PostAdd instead of array.
- Enhancements in information features:
- Lists of functions work better. Better sorting, autocompletion, changed icons, and more.
- Can erase category name when typed categoryname. and selected something from the list. Look in Options.
- F2 works with class member variables and locally declared variables.
- And more.
- Various enhancements:
- Functions in WINAPIV and WINAPI7 now are delay-loaded (dll-). Added some missing declarations.
- In exe, if a dll not found in exe folder, also searches in QM folder, if installed.
- Possible to execute functions while compiling for exe. For example, #compile* Function previously was error.
- Shift+drag selection of multiple QM items for cut/paste.
- act works better with multiple Excel and PowerPoint document windows.
- Accessible object triggers work in QM window.
- "Test" button in "Find Image" and "Enumerate Files" dialogs.
- List of QM shortcuts in "Create shortcut" dialog.
- ARRAY, BSTR and VARIANT destructors don't reset GetLastError.
- While QM is ending a thread (on "end macro" command, file reload, etc), the thread now can use mac, dis and other functions that previously would cause incorrect thread termination, especially if they were in destructors or atend functions.
- New tools:
- Remap Keys. Look in floating toolbar, "More Tools" menu.
- Bug fixes:
- Some functions unavailable in exe (__ProcessMemory, GetListViewItemText).
- Incorrect mouse trigger hit test in some windows on Windows 7.
- Sometimes missing tray icon at startup on Windows 7.
- QM occasionally hangs for several seconds when pressed hotkey or other trigger.
- ret returns invalid COM object in some cases.
- Dir.FileSize returns incorrect file size of very big files.
- HtmlDoc InitX functions may change some characters.
- DATE from/to string assignment uses system default locale. If date format of user and system default locales are different, possible error or unexpected date string format. Now changed to user's lcale. Possible incompatibility: now in such case will be different date string format than before.
- Fixed several bugs related to declarations and reference files.
- Destructors and atend functions not always called when user ends thread without terminating.
- On user accounts other than where QM was installed, does not work menu Edit -> Active Items -> Open Multiple -> Open Automatically.
- ARRAY.sort does not work with arrays of interface pointers.
- ARRAY functions sort and shuffle don't work properly if lbound is not 0.
- Cannot load imagelist bmp file in exe from resource.
- In some cases allows to call private functions of base class from functiosn of inherited class.
- And more.
- What can be incompatible with previous versions:
- If you have functions with same names as the new system functions, you will have to rename or delete them. Same with classes and other declarations.
- See the red "Possible incompatibility" above.
QM 2.3.1 (September 5, 2009)
Exact version: 2.3.1.9
- Many internal code changes and optimizations.
- Some new debug features - variables,
call stack, and more.
- New functions and classes: str.timeformat, OutWinMsg, Statement, PsCmd, PsFile, str.ConvertEncoding, __ProcessMemory.
- More options in: deb, tok, str.dospath, Htm.CbSelect.
- Works better: acc (with WPF windows), GetListViewItemText.
- Fast encrypting/decrypting multiple QM
items.
- F1 and F2 in the help search field work
in a similar way as in the code editor.
- Output history.
- Added reference file WINAPI7 with
Windows 7 declarations. Also updated WINAPI2 in the forum.
- Bug fixes.
QM 2.3.0 (April 29, 2009)
Exact version: 2.3.0.13
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.
- Supports Unicode.
- Does not run on Windows 98/Me. The last QM version that supports these OS
- QM 2.2.1 - is here.
- Improved code editor. Some related info is here and here. You can change colors and fonts
in Options -> Editor.
- Open Items and Running Items lists. To show, check View Active Items in
Edit or Run menu.
- Find help, functions, tools. Previously it
was available in the forum. If you have downloaded it, delete "QM quick
help search" folder from the list of macros.
- Custom icons of QM items.
- More options in Icons dialog.
- Imagelist editor.
- Shell menu triggers. Previously available in the forum. If you have it,
delete 'Shell menu triggers' folder.
- Bookmarks and saved searches.
- 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.
- 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.
- 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, StrCompare, StrCompareN, MemCompare, GetUserInfo (user/computer name), GetFullPath (from relative), GetQmCodeEditor, InsertStatement,
and more.
- New predefined variables: _unicode.
- New operators: @ (converts string
to Unicode UTF-16).
- More options in: str.unicode, str.ansi, findrx (flag 32), str.replacerx (flag32), rget,
rset, str.escape, interface (optional parameters; 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).
- Added QM item type - file link. Added related
options to qmitem, str.getmacro, newitem and in other places.
- Added QM item property - temporary.
- New triggers: QM events -> File link run,
End thread.
- Special folders more reliable.
Several new special folder names and aliases.
- 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.
- Toolbars: If you drag and drop a file onto a program icon, you can choose
to open the file in that program.
- Name completion. Partially type an identifier (function, etc) and press
Ctrl+Space or use menu Edit -> Members.
- Indented multiline strings.
- 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.
- Printing. Menu File -> More -> Print.
- You can change backup folder path in Options -> Files.
- New menu option: /multicolumn.
- Changed behavior of "record window command" hotkey. Now shows
popup menu with several choices. Removed "record mouse command"
hotkey.
- Exe: QM Pro license now is not needed. Currently
there are no other features that would require Pro license.
- Tested and runs well on Windows 7 beta. Works well with Internet Explorer
8.
- Can check for new QM version (Options -> General).
- Bug fixes.
- 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.
- This QM version does not run on Windows 98/Me. Exe files created with it
too.
- 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.
- Added some QM extensions that previously were available in the forum. You
should delete downloaded extensions. While not deleted, QM shows warnings.
- QM item icons. Everything will work but some icons in menus, toolbars and
dialogs will be different than before. Read more.
- Updated WINAPI reference file. Removed some rarely used declarations.
- New functions. If you have functions with same names, rename them. On name
conflicts QM shows warnings or errors in output.
- 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.
- 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.
- 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.
- Fixed 2.2.0 version bug: QM does not run on Windows XP without SP. QM-created
exe files too.
- 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.
- Fixed 2.2.0 version bug: On some Vista computers, scheduled tasks are not
updated after editing.
- Fixed 2.2.0 version bug: VbsExec and other VBScript
functions don't work.
- 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.
- Fixed mac and DynamicMenu bugs with synchronous menus: Returns 0 if first line item selected. Does not
wait if a menu is already shown.
- Fixed bug: dll functions with double parameters give exception if passed
certain expressions.
- Fixed bugs in wait K/M in exe: On Windows 98 may
not work. On Vista may not work first time in thread.
- 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).
- Improved synchronization of key and clipboard functions. Better reliability, especially in stress conditions
(low memory, busy CPU, etc).
- New options used with opt (keysync) and getopt (slowkeys, slowmouse, keymark, keysync).
- Better wait precision
(2 ms).
- Make exe: Can compress.
- Dll functions: 1. Supports optional
parameters. 2. Supports ... for variable
number of parameters.
- Added easier way to add ARRAY elements.
- New functions: str.stem, str.getstruct,
str.setstruct, ARRAY.sort, shuffle.
- 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.
- New dll functions exported by QM: GetProcessExename, RealGetNextWindow, MonitorFromIndex, MonitorIndex, AdjustWindowPos, RealGetKeyState, Round, RandomNumber, RandomInt.
- Added predefined variable _monitor that controls where various dialogs are displayed. Some functions modified
to support it.
- 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).
- New categories: sysinfo, multimedia.
- 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.
- Changed ShowDialog position algorithm (differently depends on monitor, styles, hwndowner, etc).
- Slightly changed behavior of: win (prefers visible windows), child (does not prefer visible windows if matchindex is nonzero), _create.
- Works better: ifk on Vista, scan with icons.
- Log loaded dlls and type libraries.
- The Find dialog supports AND and OR.
- 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.
- Toolbars: /bsiz works with all styles,
and added minwidth.
- Other bug fixes and optimizations.
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.
- 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.
- Updated winapiqm.txt reference
file (WINAPI). Also, in the QM forum you can
find and download another reference file that contains more declarations.
- 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.
- Enhancements related to user-defined
types: 1. Anonymous types within
types. 2. Base type without member
name.
- 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.
- New functions: interface IStringMap, RunConsole, lock, str.dospath, str.addline, ReceiveMail, #exe
addfile, ExeExtractFile,
ExeGetResourceData, variable _win64.
- 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).
- 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).
- Several new dll functions exported by qm.exe.
- Macro and function properties: "Run in
separate process", "Run As".
- Popup menus: Expandable file folders,
bitmaps and more.
- Special folders: 1. Can be
used CSIDL constants. 2. Environment variables are expanded recursively.
- Better supports ActiveX controls.
In the Type Libraries dialog added
Controls view.
- 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).
- 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.
- Pasting (outp and str.setsel) now works in console
windows too.
- 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.
- These features are now supported in exe: shutdown -1 (exit exe), Exit (exit exe). Fixed shutdown -7 bug.
- In exe, all text and function names now are encrypted.
- Now maximal text length is 4 MB for menus, toolbars and TS menus. For other
items it remains 32 KB.
- A global hotkey to show Threads dialog can be specified in Options.
- Menu Edit -> Wrap Lines.
- Options -> Files -> Always Add These Shared Files.
- 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.
- File triggers: DOS filenames are no longer returned for Added and Modified
events. You should modify Include/Exclude fields that contain DOS filenames.
- 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.
- Make exe. Can create standalone programs
from macros and functions.
- New directives: #out,
#warning, #error, #exe.
More options in #opt (nowarnings).
- New functions: Http.PostFormData.
- New predefined variables and constants.
- More options in: ShowDialog (icon, menu, hotkeys, 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).
- Several new dll functions exported by qm.exe.
- In dialog procedure now it
is not necessary to call DT_Init and other DT_x functions.
- File triggers more reliable. Fixed 2.1.9.0
bug with network folders.
- Changed End-macro hotkey behavior.
- Other enhancements and bug fixes.
QM 2.1.8 (June 15, 2006)
Exact version 2.1.8.8
- New trigger type - QM events. Special items
now are included as QM events triggers, and removed from Options.
- New trigger type - file. For Windows 2000/XP
and later.
- New trigger type - event log. For Windows
2000/XP and later.
- New trigger type - process. For Windows
2000/XP and later.
- New trigger type - accessible object.
- User-defined triggers now can be added to
the Properties dialog.
- Better integration with the Task Scheduler.
- Added option to unlock computer
to run the macro in normal conditions.
- All trigger settings now are included in the trigger
string.
- All toolbar options now can be set
in Properties. Added new toolbar options to set background picture and transparency.
- New option for functions: Allow single instance.
- New functions: Speak, SpeekStop,
OnScreenDisplay, RunTextAsFunction2,
Curtain, SetFileTimes, GetClipboardFiles,
VbsExec2, AutoPassword,
RunAs, Acc.ObjectFromEvent,
ExcelSheet.Save, Database
class, several new dll functions exported
by qm.exe.
- More options in: IntPost, Http.Post,
MouseWheel, ExcelSheet.Init,
FE_ExcelRow, BrowseForFolder,
RegWinClass, ShowDialog
(x, y), ShutDownProcess, str.encrypt,
str.decrypt.
- Works better: wait for web page (web,
wait). Previously, with
some multiframe pages, did not wait for all frames.
- Works better: _error. Now it is properly
populated in functions registered by atend.
- Works better: calling nondeclared COM functions. This also makes working
with WMI easier.
- Works better: now dialogs with DS_SETFOREGROUND style are really activated,
regardless of system settings and other conditions.
- Works better: _setevents.
- New dialogs: Get file info, Enter password.
- Dialogs, toolbars, str.setclip and str.setsel now support image files of
bmp, jpg and gif type.
- In menus can be used icon handles.
- Timer functions (tim)
now run in new thread each time.
- Redesigned Properties and Options dialogs.
- The command line parameter E now always causes to exit QM, even if an error
occurs.
- Now passwords that are passed to functions can be encrypted.
All QM functions that accept password now support encrypted passwords.
- New help topic about user-defined functions.
- Other enhancements and bug fixes.
QM 2.1.7 (Jun 14, 2005)
- Integrated help: Tips for beginners,
and function help on F1. Reassigned F1 and F2 hotkeys, and unassigned F3.
- New functions and classes: scan
(find image on screen), perf
(get time in microseconds), matchw
(compare strings using wildcard characters), class Htm
(wraps html element functions; it also includes mouse actions and enhanced
selecting of combo box items), class ExcelSheet (get/set
cell values), functions FE_ExcelRow (get cell values),
GetAttr, SetAttr (file attributes),
and several other.
- Several qm internal functions now also are exported
as dll functions.
- More options in: wait
(wait for image on screen), opt
(slowmouse, slowkeys), ref
(declare identifiers on demand but always see them in the main popup list),
web (get window handle,
use *), sel (use *), ShowText
(rich text).
- Work better: wait for CPU on Windows 20000/XP and later (eliminated first-time
delay and high memory consumption).
- Toolbars: menu -> Quick Icons.
Other performance enhancements. Toolbar option /bsiz
(max button size).
- QM runs in safe mode if F8 is pressed
when starting.
- You can change My QM folder path. It is
where your default macro list file and various other files used in QM are
stored.
- Command line: you can specify some
other character to use instead of ".
- Wildcard characters: functions and triggers, where * can be used, now also
support ?.
- Dialogs: now you can use graphical
ActiveX controls, including the web browser control.
- COM event functions: simpler access
to the event-source object.
- New help topic about using COM components.
- Thread variables: no more "invalid
pointer" errors, because the declaration statement now may be skipped
during the run time. If there is a constructor, now it runs at the beginning,
not where the variable is declared.
- Type libraries: now are supported names containing invalid characters.
- Various small enhancements and bug fixes.
QM 2.1.6 (Mar 17, 2005)
- Quick Start topic.
- New commands: deb (set debug
mode), net (run macro
on other computer).
- Easier network setup.
- Command line parameter N (wait for
a network file).
- Improved menu recording. Toolbar menu item Record Menus.
- Toolbar option /lock.
QM 2.1.5 (Feb 2, 2005)
- New functions: htm
(replaces HtmlFind), web
(open web page; replaces IeNavigate), more Internet
functions (connect, disconnect, get/set offline mode, download, http post,
functions and classes for sending and retrieving email), mkdir
(replaces MkDir), inpp
(replaces Password), zip
(compress/extract files), ref
(add reference file), ARRAY.remove,
ShellDialog (Run, Shut Down and other dialogs), Play
(play audio files) and several other user-defined functions.
- More options in: wait
(wait for color, cursor, web page, and more), str.escape
(urlencode), str.encrypt/decrypt (various
algorithms), findrx
(get n-th submatch), acc
(wait), typelib (load on
demand), foreach (without
VARIANT), call (function
name as string), shutdown
(softly end current thread), qmitem
(datemod), str.expandpath (env.
var.), Tray functions, Ftp.Cmd ("write"
commands), ChDir (autorestore), toolbars
(all virtual desktops).
- Work better: act (activate next window), ArrangeWindows
0 (show desktop), ShowText (removed 64 KB limitation),
rget (supports REG_EXPAND_SZ), new Internet functions.
- The following commands can also be used as functions (variable=function(...)):
min, max, res, hid, men,
dis, spe,
opt.
- Type-info: declared several useful type libraries - Wsh (Windows Script
Host), Shell32, Services, etc, and
reference file WINAPI containing Windows declarations (type WINAPI. and select from list).
- Embedding multiline strings
without escaping.
- Menus, toolbars, TS menus: can be used escape sequences.
- You can selectively disable key,
mouse, window and command line triggers.
- Disabled items don't run from command line triggers (shortcut, scheduler,
etc). Also, special items now also don't run if file is disabled.
- Menu Edit -> Copy BBCode. Copies colored code for the QM forum.
- File viewer. Makes importing and undeleting easier
and safer.
- Spam filter. Checks
email and deletes spam.
- QM extensions now are better protected from initialization failures. In
Options, added 'Extensions: always use' checkbox and 'Check extensions' button.
The System folder now is read-only.
- Items in read-only folders cannot be modified in any way. Previously, read-only
was only text. The 'Properties' dialog now is always accessible (even if macro
is encrypted), but properties cannot be changed if macro is in read-only folder.
- Now, variables can be used in all fields of dialogs from the floating toolbar.
Instead of using 'Variable' checkbox, enclose variables into parentheses.
This is necessary only for string fields, and must not be used where there
is 'Variable' checkbox.
- More dialogs, more options in existing dialogs.
- New command-line parameter MS allows
you to execute functions synchronously.
- When exporting, you can set allowed file-open methods (open, import, use
as shared file).
- New setup program.
- QM now works better on computers with multiple user accounts. QM now is
installed for all user accounts. The default place where QM now saves various
files is the My QM folder in My Documents (previously - QM folder), that is,
separate files for each user. Some files are moved from QM folder to My QM
folder.
- My Macros window. View all triggers in
one list.
- Menu File -> Sort.
- Windows XP visual styles (themes) applied. Possible
problems
In user-defined dialogs
(created in QM Dialog Editor), lines become invisible. To make them visible,
replace them with Static controls with SS_ETCHEDHORZ or SS_ETCHEDVERT style.
To do it quickly, use Find dialog. Check Regexp. In first edit field enter
^( \d+ )Button 0x\d+7 0x\d+( .+ ""\r\n). In second
edit field enter $1Static 0x54000010 0x20004$2
(for horizontal lines) or $1Static 0x54000011 0x20004$2
(for vertical lines). Replace all found lines in dialog definitions.
Note: after upgrading to 2.1.5 version, many settings are reset to
defaults, like after installing first time.
QM 2.1.4 (Jun 27, 2004)
- Recording: improved reliability; can
use variables.
- More options in act,
opt, getopt
and win.
- Changed behavior of end
in callback function.
- Functions from System shared folder now have
higher priority.
- Removed all triggers from the System folder.
- Toolbar startup options: better parsing;
can be used functions.
- Better support for drag and drop in toolbars. You can drop QM items, Internet
links, multiple files and virtual folders/objects.
- Fixed several bugs.
QM 2.1.3 (May 30, 2004)
- More dialogs, more options in existing dialogs.
- Added support for multiple monitors. This includes mouse commands, mouse
triggers and toolbars.
- More options in key triggers (next key),
mouse triggers (X buttons, window parts),
window triggers and TS
menus. Window trigger coding is changed. Window triggers now are more
reliable.
- New commands and functions: foreach,
str.setmacro and several new functions
in System\Functions folder.
- More features in: sel-case,
key, newitem,
child, but,
list, mes,
run, rget
rset, str.fix, ARRAY.redim,
ArrangeWindows, Dialog
Editor and toolbar options.
- In window triggers and all functions that search for window or other object
by name (win,
child, acc, HtmlFind),
flag "Exact" is replaced with "Use *". Behavior is the
same, unless string contains *, or if "Exact" was used together
with "Regexp.".
- Regular expressions: $ now matches either newline, or carriage return and
newline.
- Fixed several bugs.
QM 2.1.2 (Feb 24, 2004)
Main new features: now QM can recognize much more types of user interface objects,
including html elements in web pages (e.g., links), and programmatically interact
with them.
- Now you can work with accessible objects. Accessible objects are user interface
objects contained in a window: controls, menus, links, list items, etc. New
features include functions acc,
acctest (find/test accessible object), Acc class
(manipulate accessible object), "Find accessible object" and "Accessible
object actions" dialogs.
- Now you can work with html elements in web page (links, buttons, text input
fields, etc). New features include function HtmlFind
(find html element), related functions, "Find html element" and
"Html element actions" dialogs.
- New classes: Acc, Tray
(add tray icon).
- More features in: interface,
str.getsel, str.setsel, opt,
err, spe,
case, mac,
newitem,
Dialog Editor, toolbars,
toolbar startup options.
- Now err and opt statements
can handle exceptions.
- Now formatting functions don't produce "(null)" when string variable
isn't initialized.
- Fixed bugs in: iif (when used as argument with
some functions), qmitem, menu/toolbar icons, and
several other.
QM 2.1.1 (Jan 03, 2004)
- Changed Help file format.
- Now you can copy QM text in HTML format.
- New classes: Dir (find and enumerate files, get
file info).
- More features in Replace dialog (regexp
menu, query saving), run
(get exit code).
- Fixed bugs in: end
(in callback), str.getclip (unknown format
causes exception), deleting dublicate function (other function becomes unknown),
GetFileInfo (wildcards), IeNavigate
(hwnd=3).
QM 2.1.0 (Dec 17, 2003)
Main new features: COM support, classes, categories, safe arrays, thread variables,
type-info popups (members, globals), regular expressions, trigger scope for
folder, new and extended functions. Below is complete list.
- Now QM supports COM, OLE Automation variable
types and type libraries.
- Better type info.
- New functions: str.replace, str.findreplace,
str.expandpath, str.encrypt,
str.decrypt, getopt,
numlines,
newitem,
#err, ChDir,
CurDir, RunTextAsMacro,
RunFileAsMacro, IeNavigate,
IeWait, functions to execute VBScript and JScript
code, shutdown,
findrx,
str.replacerx, #set.
- More options in: dll,
function, type,
end, atend,
run,
cop, ren, del,
mac, wait,
tok, #opt,
#if, #compile,
str.time, str.from, val
and TS menus.
- Deleted functions: float (now use FLOAT type).
- More strict type checking. Use operator
+.
- Now user-defined and dll functions can have declared parameters and return
values of any type. Parameters can be structures passed by value.
- Now menu/toolbar items of "statements" type are executed as functions
therefore can run while macro is running.
- Safe arrays.
- COM events.
- A hotkey to end macro can be specified in Options.
- Folder and file properties: "Scope"
(scope of triggers), "Application" (private functions, variables,
etc.), "Read-only items", "Disabled items" and other.
- New variable scopes: thread variables
(function-private and shared).
- New dialog: Navigate in Internet Explorer (open URL, Back, Stop, etc).
- Better error handling. See #err
and _error.
- Regular expressions.
- New topic in Help: COM collections.
- Removed "Strict type checking" from Options (now always strict).
Use operator +.
- Changed: now you always must use struct.member syntax to access first member
of structure, unless structure has single member.
- State data of functions dir,
findt, findl,
str.gett and str.getl
now has local scope (was thread scope). Each function stores it in separate
local variable: _dir, _findt, _findl,
_gett and _getl.
- Classes and categories.
- New classes: File, Ftp, Http, Dde.
- Functions and classes are collected into categories.
- Memory-allocation functions _new,
_resize, _delete and _len.
- Mouse triggers: "Slow" option.
- Fixed bugs in tok, tim,
findrx, str.replacerx, str.from, bee+,
CB_SelectString functions, "import", "insert
encrypted text" features and more.
- Fixed bugs in long numbers, break, err+.
- Other bug-fixes and enhancements.