I would like to know how to provide proper protection for my complex worksheets before sharing it with external parties.
Aiming for the followings:
- protection of the hidden areas against opening
- time limit of usage using expiry date (hopefully not linked to system time of the particular computer)
- runs only if hardware dongle is present (therefore copies and the distribution of software is limited)
In the future Mathcad Prime 4.0 release you can only set a password for hidden areas (more about Prime 4.0 planned feature here: PTC Mathcad Prime Roadmap (2015/2016 update) 😞
According to the latest information Mathcad Prime 4.0 planned to be released end of December 2016 year.
My advice: don't hold your breath for that.
Mathcad 15 allows you to lock hidden areas. As noted by others, Prime 4.0 is supposed to include this feature.
The other two requests would likely need to be filled outside of Mathcad.
I don't know of any software myself, but I'd imagine there are ways of achieving what you want - just not through Mathcad.
Specifically for your last request - I'd imagine that the maker of whatever dongle you use could provide direction on how to protect certain files (Mathcad files, in this case).
A dongle is usually tied to an executable file, so that it won't run (or won't run certain pieces of the software package) if it's not present. You can't use one to prevent copying of a passive file such as a Mathcad worksheet. The one thing I can think of is to write a user DLL with a function that multiplies a variable by 1, and checks for the dongle. For neatness that could be put in a collapsed area and hidden from view. Then protect the worksheet from editing. If the dongle is not present then an undefined error will prevent the worksheet from calculating. The user DLL would of course have to be distributed with the worksheet.
Another possibility is that the files gets scrambled, and an intermediate filter (executable program) is needed to unscramble it, before Mathcad can use it. This filter would then cooperate with the dongle.
I've seen this happen with .PDF files.
As a first step I was trying to get actual date from the web as computer date can easily set back and the worksheet would run even after expiry. (mathcad 15 and Prime 3.0)
Mathcad date taken through Scriptible object: "SEP date control" takes the date of the computer, which can be modified easily, so does not help.
Taking the date from the web works fine in excel. Tried two options: one with VB, the other with web query. Nicely updates especially when done in VB.
So I tried to integrate excel into the mathcad.
If the excel with web query integrated as a component into mathcad then you actually have to get into the excel file to make sure that it runs so not really automatic.
If you integrate excel component with VB than everything is red.
Finding a way to get date from web would as a first step at least set a time limit on the sheet, then as a second step number of copies could be limited by linking to a dongle.
Andras Kovacs wrote:
... Finding a way to get date from web would as a first step at least set a time limit on the sheet, then as a second step number of copies could be limited by linking to a dongle. ...
You can insert a link on a document containing data (but as I remember here the address with "https" not working) by select "Insert" --> "Reference":