Intel® Business Client Software Development
Support for Intel® vPro™ software development and technologies associated with Intel vPro platforms.

KVMControlApplication SetLicense

Brett_C_
Novice
1,445 Views

Whenever I use this sample code, I get the VNC watermark telling me to register the product.

I am trying to remove this water-mark.  I have purchased the key and put it into the app.config as directed by the readme.  No worky.

I noticed that there are a few lines of code commented out that actually set the license.

%SampleRoot%\RemoteSessionForm.cs: line 401 and 402

            // if (Configuration.GetInstance().RFB.LicenseKey != string.Empty)
            // _viewerPanel.Viewer.SetLicense(Configuration.GetInstance().RFB.LicenseKey);

If I uncommented these lines it states that IVncViewer does not contain a method definition for SetLicense.

I have tried to extend this interface myself and use P/Invoke using the currently implemented patterns with no success.

The vncamt.h file implements this as:

typedef void VNCCALL 
VNCViewerSetLicense(VNCViewer *pViewer, const char *licenseString, size_t length);

I am calling it in C# as:

sdk.vncViewerSetLicense(pViewer, Native.StringParameter(key), (uint)key.Length)

There is a stupid detail that I am missing somewhere.

0 Kudos
1 Solution
Brett_C_
Novice
1,445 Views

I spoke with VNC about this issue.  They have intentionally obfuscated this implementation.  They would like market-incentive to release this solution to the SDK.

I don't understand why.  Implementing this would only help their customers buy licenses and improve their user-experience.

Unless Intel can provide an earlier version of the AMT SDK in which the RemoteSessionForm.cs lines 401-402 are functional i.e. uncommented and working, I am considering this matter resolved.

View solution in original post

0 Kudos
7 Replies
Joseph_O_Intel1
Employee
1,445 Views

The watermark is controlled by RealVNC, so specific questions should be directed to them.

However one issue may be that you purchased a RealVNC license, however what you needed was the license for RealVNC plus

Joe

 

0 Kudos
Brett_C_
Novice
1,445 Views

Sorry, if I sound frustrated.  I've been dealing with this problem for months.

The sample code is packaged in your SDK.  Are you not responsible for that sample code?  Also, if you take a look at the sample, it uses P/invoke, which is RealVNC/Intel agnostic.  

I was hoping to get some insight from someone with more P/Invoke experience than me.

Thanks for your insight into the key issue.

0 Kudos
Lance_A_Intel
Employee
1,445 Views

Hello,

If the SetLicense call is not available, you may not have the appropriate libraries included in the project.  Which version of the AMT SDK are you using? Take a look in AMT_SDK_11.6.0.9\Windows\Intel_AMT\bin\KVM   or   AMT_SDK_11.6.0.9\Windows\Intel_AMT\bin64\KVM for pre-built libs.

I have seen an implementation for that code with a license that looks like this:

using RealVNC.VNCViewerControl;

using RealVNC.VNCViewerSDK;

...

...

_licenseKey = "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx";

 

if (_licenseKey!=null)

_viewerPanel.Viewer.SetLicense(_licenseKey);

else

ShowMessage(

string.Format(Properties.Resources.STATUS_NO_LICENSE));

0 Kudos
Brett_C_
Novice
1,445 Views

Lance,

Thank you for your reply.

I am talking about unmodified sample code, specifically %SDK_ROOT%\Windows\Intel_AMT\Samples\KVM\KVMControlApplication\RemoteSessionForm.cs.  Of course it already includes RealVNC.VNCViwerControl and RealVNC.VNCViewerSDK, lines 13 and 14.

I have looked at several versions of the SDK and none of them implement IVNCViewer.SetLicense including 11.6.0.9.
The lines of code that you supplied are in RemoteSessionForm.cs, lines 401-402 as I stated originally.  The line "_viewerPanel.Viewer.SetLicense(_licenseKey);" does not work because Viewer (is of type IVNCViewer) does not contain a method definition for SetLicense.

In SDK version 11.6.0.9, RemoteSessionForm lines 401-402 are commented out.  If I uncomment them, I get an error that:
"'IVNCViewer' does not contain a definition for 'SetLicense' and no extension method 'SetLicense' accepting a first argument of type 'IVNCViewer' could be found (are you missing a using directive or an assembly reference?)" 

IVNCViewer is a part of the RealVNC.VNCViewerControl namespace that is already included in RemoteSessionForm.cs.  It does not implement the SetLicense method.

You stated that you have seen this implementation.  Where is it?  Have you made it work?

I tried to implement it myself as stated in the original post.  I used the same patterns in place to try to get the vncamt.dll VNCViewerSetLicense method to accept the key, and it seems to ignore it without error.

Edit: I meant vncamt.dll instead of vncamt.h

0 Kudos
Joseph_O_Intel1
Employee
1,445 Views

The SDK does not include a full license for Real VNC plus. So the watermark will be retained until you either download and install the 30 day trial or purchase a license for RealVNC plus and add it to the viewer..

 

0 Kudos
Brett_C_
Novice
1,445 Views

Joseph,

Thank you for your enthusiasm in trying to help me with this issue.

However, if you read the OP in full you will notice that "I have purchased the key and put it into the app.config as directed by the readme."

Again, I appreciate your input.

0 Kudos
Brett_C_
Novice
1,446 Views

I spoke with VNC about this issue.  They have intentionally obfuscated this implementation.  They would like market-incentive to release this solution to the SDK.

I don't understand why.  Implementing this would only help their customers buy licenses and improve their user-experience.

Unless Intel can provide an earlier version of the AMT SDK in which the RemoteSessionForm.cs lines 401-402 are functional i.e. uncommented and working, I am considering this matter resolved.

0 Kudos
Reply