running an application with as a service is generally possible. However, please keep in mind that services do not interact with the user’s desktop. Some of the tools however are showing a message box when they detect that they have not been licensed (as a rule of thumb it’s usually those tools that do not generate an output image which they could render partially useless by means of a watermark). Now if your application is using one of those tools and your application is running as a service and you happen to not have a license for the tool, then the service application will open a message box that will not be visible but nevertheless wait for someone to click the “OK” button - which will of course never happen…
There is not really much of a way around that - my recommendation would be to take into account the possibility of a user launching the service without the necessary license(s) and plan for that scenario:
During startup, before accessing tool functionality, make a heuristic check for license availability
Implement logging that would allow you to identify a “license not available” situation
question 2
By default most CodeMeter dongles that is using have been configured to pose as a mass storage device. In principle this is neat because it allows the devices to function without the installation of a system-level driver as the operating system already has the necessary drivers in place. One of the side effects of this is that if the OS is configured to block/ignore all USB-based mass storage devices, the CodeMeter dongle will not be detected.
The only way around that - short of establishing an exception for the CodeMeter key - is to reconfigure the dongle as Human Interface Devices. Note that at least 12.01.000 (aka 2016) will be required for that. To reconfigure the dongle as a human interface device, the cmu32.exe utility that is installed with (or, more precisely, with the CodeMeter runtime that is installed by ) will be required (usually located in %ProgramFiles%\CodeMeter\Runtime\bin%). To switch a given dongle to human interface device (HID) mode, please to the following:
Plug in the dongle and open a command window (no administrative privileges required…).
Enter the command cmu32 --list
This should produce a list of the available CodeMeter license containers like this:
W:\>cmu32 --list
cmu32 - CodeMeter Universal Support Tool.
Version 6.70 of 2018-Jul-19 (Build 3152) for Win32
Copyright (C) 2007-2018 by WIBU-SYSTEMS AG. All rights reserved.
List all locally connected CmContainers:
- CmContainer with Serial Number 3-4282892 and version 4.03
- CmContainer with Serial Number 128-2308711 and version 1.19
Result: 2 CmContainer(s) listed.
Determine the serial number of your dongle. Dongle serial numbers usually start with 3- (if yours starts with 2- or 1- the firmware of your dongle is too old to support HID mode), so in the above example the serial number would be 3-4282892.
You can output the current configuration of the dongle via cmu32 -s 3-4282892 --show-config-disk. For a dongle that has been configured as a mass storage device the output looks like this:
W:\>cmu32 -s 3-4282892 --show-config-disk
cmu32 - CodeMeter Universal Support Tool.
Version 6.70 of 2018-Jul-19 (Build 3152) for Win32
Copyright (C) 2007-2018 by WIBU-SYSTEMS AG. All rights reserved.
- CmStick with Serial Number 3-4282892 and version 4.03
Version: 4.03
Flash Size: no real flash available
Virtual Drive: F:
Configuration: LocalDisk with ActivePartition
File System: FAT32
Communication: Mass Storage Device
Boot-Code: Int18 Boot Code
Mdfa: 0x539
Switching to this HID mode is done with cmu32 -s 3-4282892 --set-config-disk HidCommunication. Run that command line and re-plug your dongle when prompted to:
W:\>cmu32 -s 3-4282892 --set-config-disk HidCommunication
cmu32 - CodeMeter Universal Support Tool.
Version 6.70 of 2018-Jul-19 (Build 3152) for Win32
Copyright (C) 2007-2018 by WIBU-SYSTEMS AG. All rights reserved.
Communication mode changed successfully.
Please re-plug your CmDongle to apply the changes.
After re-plugging the dongle you may want to run cmu32 -s 3-4282892 --show-config-disk again to verify the outcome:
W:\>cmu32 -s 3-4282892 --show-config-disk
cmu32 - CodeMeter Universal Support Tool.
Version 6.70 of 2018-Jul-19 (Build 3152) for Win32
Copyright (C) 2007-2018 by WIBU-SYSTEMS AG. All rights reserved.
- CmStick with Serial Number 3-4282892 and version 4.03
Version: 4.03
Flash Size: no real flash available
Virtual Drive: No drive assigned (HID)
Communication: Human Interface Device (HID)
Please keep in mind
The HID mode won’t work with older versions of
If a security measure is in place that blocks unknown HID devices like the rubber ducky USB sticks that also pose as HID device, CodeMeter dongles in HID mode will also be blocked.