||21 Sep 2018
- CMServer has the option to only update a single program where there are multiple protected programs within a single product.
- Auto-detection of CMServer from the protected program now checks all network interfaces.
- Significant improvements in execution time of the network protection check but also smaller improvements in standalone licence checks.
- Addition of third CopyMinder licence server for additional redundancy.
- New ini file option NoPrecheck to disable pre-checking.
- New ini file option TCPTimeout to override the default Windows timeout on establishing TCP connections (e.g. to our servers) during a protection check.
||01 Jul 2016
- Support for multiple programs/modules protected with the same licence key (see SDK v6.0).
||24 Sep 2014
Bug Fix: In rare situations, updating from .cm file version 65 to 66 could cause CMServer to use an incorrect network user limit until CMServer was restarted.
||04 Aug 2014
- Support for the CM_SetNetUsersToStart() feature (see SDK v5.1).
- Support for the CM_SILENT option to API protection checks (see SDK v5.1).
- Italian runtime messages added.
- Bug Fix: Incorrect detection of certain RAID cards could lead to the same trial licence being issued to multiple sites, now fixed.
- Kazakhstan now added to countries dropdown list.
||10 Dec 2012
- Supports the 'ShellInfo' feature (see SDK v4.5).
- Performance improvement in network-based protection checks.
- Bug Fix: Network clients could incorrectly give error 1059.
||09 Oct 2012
- Bug Fix: Execution count was decremented by 1 even when NO_EXEC_CHECK (2) was used.
||13 Aug 2012
- Bug Fix: Backwards compatibility problem with old versions of CMNet.
||16 Jul 2012
- Supports decrementing multiple executions in a single protection check (requires new API function CM_SetExecsToDecrement() added in v4.4 of the SDK).
- Improved the reliability of the MachineID calculation.
- Supports longer email addresses.
||22 Mar 2012
- If registration information is put into .cm.ini under the new [Registration] section then this is filled in to the user registration dialog.
- The registration dialog can be suppressed if all required information has been given in .cm.ini.
- The maximum size of the Secure Data Area has been increased to 512 bytes.
- CMInstall elevates its access rights correctly under Windows 7.
- Bug fix: changing from an unlimited execution count to a limited execution count would lose 1 execution.
||25 Jan 2012
- Bug fix: A protection check error coinciding with inability to access the internet followed by user selecting manual update then cancelling, rendered the .cm file unusable.
||28 Nov 2011
- Supports the new secondary CopyMinder server (secondary.copyminder.com) at 188.8.131.52.
||22 Aug 2011
- Improvements to the hardware detection.
- CMInstall now has a /uninstall option.
- Accessing the Secure Data Area is now much faster.
||14 Apr 2011
- Shell method now works with Embarcadero C programs (it used to give "DLL not found" errors on XP)
- Bug fix: Fixed a rare crash exhibited by network clients.
- Fixed a memory leak.
||14 Feb 2011
- Further improvements to the hardware detection.
- Bug fix: The protection could crash on certain Windows Server installations (including Windows Small Business Server).
||22 Dec 2010
- Improved reliability when detecting hardware characteristics.
- Network clients that fail to connect to CMServer using existing details now take note of
the AutoDetectCMServer .cm.ini variable when deciding whether to try to auto detect CMServer again.
- Fixed 2 bugs relating to network clients auto-detecting CMServer.
||28 Jun 2010
- CMServer address can also be given using a computer name instead of IP address (eg, MYSERVER:12345)
- If a manual installation successfully accesses the internet in response to a ForceWebCheck,
it no longer converts the installation from a manual to a normal installation.
- Does not deny access to the .cm file if the user is a network client.
This improves performance if all the clients share the client .cm file.
- Rarely, on Terminal Server installations, an error 692 occurred. This has been fixed.
- CMInstall creates a new .cm.ini file in the program directory instead of overwriting any existing one.
||23 Apr 2010
- In release 52, failing to enter all required registration fields resulted in error 573 instead of returning to the
registration dialog. This has now been fixed.
||16 Apr 2010
- New .cm.ini file variable: AutoDetectCMServer=[Yes|No] (default is Yes) which allows you to control
whether or not auto-detection of CMServer is performed.
- Auto-detection of CMServer is now performed from the activation dialog even when "network client" is the only option.
- Fixed problem of occasionally falsely reporting errors 514 and 515, potentially resulting in error 739.
- Improved authentication of proxy servers.
||15 Jan 2010
- Improved reliability when detecting hardware characteristics under Windows Vista and Windows 7.
- Bug fix: Windows Data Execution Prevention (DEP) could cause problems when using the Shell method with Advanced Runtime Protection enabled, and the API method together. This is now fixed.
||30 Nov 2009
- Supports CMServer, which replaces CMNet as the licence server utility for network installations.
- Bug fix: not all error messages were handled by custom messages DLLs.
- Bug fix: in certain situations, multiple users using the same protected program on Windows Vista would increase the suspect count.
||20 Jul 2009
- Improved protection against disk cloning for manual installations.
||09 Jul 2009
- Improved security and error reporting.
- Two new functions for dialog customisation: CM_MSGS_ManualPreCheckFailedWarning and CM_MSGS_AwaitingEmailVerification
||23 Jun 2009
- CopyMinder is now 100% compatible with Windows Data Execution Prevention (DEP).
DEP no longer needs to be disabled for the protected program.
- Custom messages DLL - added CM_MSGS_PreCheckFailedWarning.
- Bug fixes:
- Custom messages DLL - if the end-user selects 'always OK' on a custom 'web access required' dialog,
their response is now stored in the INI file to prevent the user being asked again.
- Resolved a backwards compatibility issue with old versions of CMNet.exe when a Secure Data Area was specified.
||15 Apr 2009
A protected program now searches for its protection-related files in the same places as before, but in a different order:
- Path variable in .cm.ini file in same directory as the protected program.
- Path set by CM_SetPath() API call (now deprecated but supported for existing installs).
- The protected program's directory.
- A 'cm' sub-folder of the protected program's directory.
- The path %APPDATA%\<DID>\<Product Code>\cm
- The path %ALLUSERSPROFILE%\<DID>\<Product Code>\cm
Behaviour of the ActivationByProductKey and Trial variables in the .cm.ini file has been modified. Previously,
if they were set to 'Manual', the protected program would try to use the internet to get the 'manual' security tolerance settings.
Now, the protected program will only allow activation by manual activation code.
Improved clock tampering detection and handling -
if an installation does not require the system clock to be accurate (i.e. no expiry date or periodic web access required),
the user may change their clock without affecting the protected program.
- CMInstall records install date in .cm.log file.
- CMInstall no longer allows /C (current user) command-line option under Vista.
- Improved error reporting.
- Improved encryption of the Secure Data Area.
- Performance improvement - protected programs now uses the CPU less during internet access.
- Bug fixes:
- Stray whitespace characters in manual update codes no longer result in an 'invalid code' message.
Invalid data no longer saved if the user enters an invalid activation code too many times, or if the user
cancels part of the way through a manual activation or update.
- A protected program no longer gives 'system clock gone back' error after automatically correcting the system clock.
- CM_SDA_Read() API function - 'flags' parameter now works correctly for network installations.
- Advanced Runtime Protection no longer prevents more than one instance of the protected program from running at the same time.
||23 Oct 2008
- Fixes backwards compatibility problem with some old versions of CMNet.
||06 Oct 2008
- The shell method now includes Advanced Runtime Protection which provides maximum security throughout your program's execution
- Compatibility fixes for Windows Server 2008 and Vista Service Pack 1
- Improvements to the Secure Data Area (SDA):
- SDA is now available for Trials.
- For a network install, SDA functions now read/write the server's .cm file instead of the local copy.
- Changes to the SDA on the web site now get downloaded to the installation when they next access the web site.
- Can now add/change/delete SDA directly from another web server by, for example, an online order system.
- CMInstall now ok for international multi-user installations.
- Bug fixes:
- Some Custom Dialogs were not working correctly.
- CM_EndNetworkUser API call now works ok.
||30 Apr 2008
- The Shell method is now compatible with a much wider range of executables, particularly those developed with MS Visual Studio.
- .cm.ini file variables changed. Some developers found the NormalInternetActivationAllowed,
ManualActivationAllowed and TrialAllowed variables confusing; these have been replaced by:
ActivationByProductKey = Internet|Manual|Either|Neither
Trial = Internet|Manual|Either|Neither
This is less ambiguous and more flexible, permitting any combination of Internet and/or Manual activation of Normal and/or Trial installations.
Further details can be found in the user manual (CopyMinder SDK 3.3 and later).
The previous variables remain for backwards compatibility but are no longer documented.
- Bug fix: manual installations that do not have an expiry date no longer give an error if the user's clock is incorrect.
- Bug fix: 999020 diagnostic error (rare).
||06 Mar 2008
- Secondary server now fully supports new installations as well as existing installations.
- Manual Trials are now supported.
- More robust recovery if .cm.dir directory is corrupt.
- If installed for the current user only, CMInstall adds current user's name to the .cm.log file.
- Improved diagnostics in .cm.log file if CMNet fails to communicate with workstations.
- .cm file version is added to the log file when newly installed.
- Protected program only brought to the foreground if the Shell method is used.
- Monaco added to the list of countries on Registration Details dialog.
- CMNet puts a message in the .cm.log file whenever it is started.
- When the .cm file specified in the .cm.ini file is not found, the error message includes the full pathname of the missing .cm file.
- Bug fix: fixed problem caused by user entering a Product Key with an invalid Product Code.
- Bug fix: problem with Machine IDs on Windows Vista.
- Bug fix: problem with some path names in CMInstall (used to give error 1005)
- Bug fix: problem of CMNet occasionally giving error 688 (resulting in error 637 on the workstation)
- Bug fix: no longer crashes if .cm file is already in use (bug introduced in release 39)
- Bug fix: Manual installations with no expiry date failed when user's clock was more than 1 hour slow.
||15 Nov 2007
- Bug fix: fixed problem with some non-English dialogs.
- Bug fix: fixed rare problem associated with Daylight Savings transition.
||10 Oct 2007
- Improved consistency in Machine ID method.
- CMNet now supports remote CopyMinder Network Paths (including UNC path names) when run as a Windows service.
- Improved .cm.log file layout.
- Spanish end user texts added.
- Sub-languages of French, German, Spanish and Dutch now fully supported.
- Improved logging of the response from firewalls etc in the .cm.log file in the event of connection failure.
- New API call: CM_CheckProtectionAlg1 is the same as CM_CheckProtectionAlg
but first element of array contains first variable (it was the second for CM_CheckProtectionAlg).
- Suspect installation count reset to zero if suspect period has passed (purely cosmetic).
- CMUpgrade.exe displays release number.
- Manual activation: Product Key field cleared if cancel is hit (in case an invalid Product Key was entered).
||30 Jul 2007
- Can now display a warning if an expiry date is approaching or the program can only be run a few more times.
- CMInstall now supports single-user and all-user installations. All-user installations to
Program Files used to cause problems on some Vista installations (typically error 602, 604 or 606).
- Improved CMInstall: /Q and /V switches can be used to control the display of
messages (defaults to only display errors). /K switch can be used to keep any existing
.cm file in the destination path rather than overwriting it (useful if the user re-installs or updates your software).
- CMInstall now defaults to English (instead of French) for unsupported languages.
- Bug fix: now supports the temporary addition of a PCMCIA network card.
- Forces internet connection online if Internet Explorer has been set to work offline.
- If a protected program is re-installed, the product key previously used will now be pre-entered into the Product Registration
dialog the first time the program is run again.
- Bug fix: problem with occasional 602/604/606 errors fixed.
- Bug fix: fixed potential crash following error 34 if data returned from the internet was too long.
- Bug fix: fixed potential error 576 if executions left > 16,777,216.
||03 Apr 2007
- 'Roaming Licence' facility has been added. This enables users of network installations to temporarily take a network user off the server for use off-site.
- All CopyMinder runtime dialogs can now be replaced with your own. See 'Dialog Customisation' in the documentation for more info.
- Added Secure Data Area feature - secure data that can be read from and written to using the CopyMinder API.
- Added 'Algorithmic Resonse' feature - an API call that greatly increases security for programs using cm.dll.
- Added option to validate the email address entered by the user when they register a protected program.
- Addedd option to pre-define a Product Key in the ini file (ProductKey=) so that the user does not need to enter a key.
- Non-administrator users can now install under Windows Vista even if they have Windows User Account Control enabled.
- Bug fix: fixed problem with some registration details getting corrupted.
- Bug fix: CMNet no longer crashes if the CopyMinder Network Path contains a non-CopyMinder .tmp file.
||22 Nov 2006
- CMNet checks that CopyMinderNetworkPath is not a UNC path or a remote path if installed as a Windows service.
- Modifications to solve occasional 60? errors.
- Bug fix: fixed problem when setting the user's clock.
- Improved error reporting when a protected program's imported DLL was not found.
- Added increased flexibility in deciding what release to upgrade users to.
||20 Oct 2006
Bug fix upgrades to newer releases of the .cm file occasionally timed out on slow or poor internet connections giving error 566/12.
To avoid this problem, we now send a lot less data to the website when getting the new release.
Users who experience this problem with earlier versions can download CMUpgrade to update the .cm file to the latest release.
- Bug fix: fixed occasional error 607 that occurred on some computers.
||29 Sep 2006
- The Tab order for the 'AskForProductKey' dialog has been improved.
- Internal diagnostics removed from 'Help' on the AskForProductKey dialog.
- Bug fix: Installation Code for Manual installations now remains unchanged until it is used successfully (bug introduced in release 30).
||20 Sep 2006
- Bug fix: In release 32, registration info was sometimes incorrect.
||13 Sep 2006
- Encryption of activation codes greatly improved and yields shorter manual codes.
- Supports multiple users on the same computer even if they have different access rights.
- Dialogs now OK with sub-languages (e.g. Austrian German).
- Bug fix: No longer gives error 516 following the use of registry cleanup packages.
- Bug fix: fixed problem with network client giving error 561 on first run.
- Bug fix: if a manual code was entered incorrectly, subsequent attempts would fail until the user restarted the program.
- Restarting the protected program no longer required after CopyMinder automatically corrects a user's clock.
- Product Key is returned by the CM_GetProductKey API calls even if the protection check gives an error.
- Improved PreCheck period messages.
||07 Aug 2006
- Diagnostics only, not officially released.
||11 Jul 2006
- Improved security.
- Product code now displayed in dialog box title instead of program name.
New ini variables to control installation type (replacing ManualOnly, TrialOnly
and NormalOnly): NormalInternetActivationAllowed, ManualActivationAllowed,
TrialAllowed and NetworkClientAllowed.
- Now supports multiple different users logging on to a single computer.
||26 May 2006
- Improved security.
- The extra functionality in recent releases caused manual activation codes to increase in length. These have been brought back to typical lengths of 26 characters.
- Added new API call - CM_GetLastSuccess() returns the time when the program was last successfully run.
- Bug fix: fixed problem with not prompting the user if their clock/time zone was incorrectly set (introduced in release 28).
- Bug fix: no longer gives error 621 when 'Manual Only' was specified on website and the program accessed the internet directly (introduced in release 28).
||05 May 2006
- You can now specify the number of days and/or executions a Manual installation can be used for before an update code is required.
- ForceWebCheck for Manual installations will attempt to access the internet (and convert the installation to a normal installation if it succeeds) before prompting for manual update.
- Re-installing a Manual installation to the same computer no longer requires a 'Manual Reset'.
- Error numbers no longer have n000 added to them.
- Bug fix: now supports Daylight Savings on FAT file systems.
- Bug fix: all API calls now fully supported in Delphi.
||06 Mar 2006
- Significantly improved speed of performing protection checks.
- .ini file - ForceWebCheck=Once now works for Manual installations.
- Options parameter for CM_CheckProtection API function now works for LAN clients.
||20 Feb 2006
- CopyMinder now supports PreChecking - tries to go to the internet for a check before it really needs to.
- Improved troubleshooting information written to .cm.log file.
- 2 new API functions added - CM_GetDid() and CM_GetProductCode().
- Added ForceWebCheck=Once .ini file option.
- Bug fix: fixed problem in CMNet when CopyMinderNetworkPath is specified in the .ini file and a new .cm file release is available.
- End user messages are now available in Dutch, English, French, German and Turkish.
||28 Nov 2005
- CMNet now performs a protection check when started rather than wait for the first client to run.
- CMNet no longer polls for new .cm files, instead it must be restarted to affect a .cm file update.
- ManualOnly and TrialOnly can now be specified in .ini file.
||04 Nov 2005
- Bug fix: Manual installations no longer treated as new installations after expiring.
- Protection checking is faster.
- Facility added to downgrade a .cm file.
- Can change CMNetPath by editing .ini file without risk of getting extra users.
- Bug fix: problem when running in non-administrator mode has been fixed.
- New CheckProtectionOptions - BIT1 prevents checking/decrementing the execution count, BIT2 suppressess expiry date checking, BIT3 prevents incrementing the number of network users.
||26 Oct 2005
- All runtime errors written to log file.
||21 Oct 2005
- CMNet - client computers now update their .cm files automatically when a new release becomes available.
||10 Oct 2005
- Bug fix: fixed problem with connecting to internet too frequently.
- Workstation timeout increased to 2 mins.
||04 Aug 2005
- French messages added.
- Now only one prompt when accessing internet when getting new .cm file.
- Website log file now records why an installation appears to be new.
- Bug fix: cmd.obj (for Delphi) now OK.
- msgs.dll displays CM_MSGS_SUCCESS and CM_MSGS_ERROR if present.
||15 Jun 2005
||06 May 2005
- Internet access timeout increased to 50 secs.
||12 Apr 2005
- API functions return protection parameters even if protection check fails.
||15 Mar 2005
- New API functions added: CM_SetPath, CM_GetNextWebAccess, CM_GetLocalExecsLeft and CM_GetWebExecsLeft.
- New .obj modules available: cmb.obj for Borland C and cmd.obj for Delphi.
||23 Feb 2005
- Problem running under .NET operating systems (e.g. Windows Server 2003) fixed.
- New API function added: CM_EndNetworkUser
- Secondary server now functional.
||14 Feb 2005
- Ini file now uses descriptive names.
- Problem with Squid proxy server now fixed.
||20 Oct 2004
- CopyMinder first released.