locked
Can't load the Remote Desktop Client ActiveX Control (WinJS) in Windows 8.1 environment RRS feed

  • Question

  • Hi,

    My Windows Store WinJS app uses the Remote Desktop Client ActiveX Control, which is loaded as follows:

    // Set object's classid to RDP client control's s CLSID.
    clientControlObject.classid = "CLSID:EAB16C5D-EED1-4E95-868B-0FBA1B42C092";

    This has been working fine in Windows 8.0, but on Windows 8.1 this line throws "JavaScript runtime error: Access is denied".

    For the time being, I'm able to build my application with target platform set to "Windows 8.0", and release it to a machine running 8.1, which seems to work fine. However this means that I can't take advantage of the newest features that 8.1 adds on top of 8.0 (correct me if I'm wrong here).

    Is there a known way to get it to work in 8.1, or is it a planned future release?

    Best Regards,

    -Paul


    Tuesday, December 3, 2013 9:06 PM

Answers

  • (a bug in the post editor won't let me remove this empty code block. please fix it.)

    Update:

    Luckily, I was able to find the cause of the problem quickly enough by comparing the code differences.

    In the "Remote Desktop app container client sample", the classid is set first:

    // Set object's classid to RDP client control's s CLSID.
    clientControlObject.classid = "CLSID:EAB16C5D-EED1-4E95-868B-0FBA1B42C092";

    and the client control object is then appended as a child to the container element:

    clientControlRegion.appendChild(clientControlObject);

    My application code did these 2 steps in reverse order.

    Having fixed the order, it now works properly after retargetting to Windows 8.1

    Best Regards,

    -Paul



    • Edited by paulkore Wednesday, December 4, 2013 4:53 PM
    • Marked as answer by paulkore Wednesday, December 4, 2013 4:53 PM
    Wednesday, December 4, 2013 4:51 PM

All replies

  • I can't seem to repro the issue with the "Remote Desktop app container client sample". Here's what I did.

    a.) Ran the Windows 8 version of the sample on my Windows 8.1 machine

    b.) Ran Scenario 1 and hit the Connect button.

    c.) the connection succeeded.

    d.) Right clicked the project in Visual studio, Retarget to Windows 8.1

    e.) Ran Scenario 1 again and I was able to set the classid successfully.

    If you have specific repro steps, please share.

    Thanks,

    Prashant


    Windows Store Developer Solutions, follow us on Twitter: @WSDevSol|| Want more solutions? See our blog

    Wednesday, December 4, 2013 12:42 AM
    Moderator
  • IE11 implemented new security features, this may be one of them.

    JP Cowboy Coders Unite!

    Wednesday, December 4, 2013 1:41 AM
  • Hi Prashant,

    You are right - the "Remote Desktop app container client sample" does not have this issue. Just confirmed this in my 8.1 dev environment.

    Which means that there's something about my own code base that's causing it.... at this point, I will have to do a trial-and-error code & settings comparison.

    Will update this thread, if I find the cause of the problem.

    Please let me know if you find any further insight on the matter, on your end.

    -Paul

    Wednesday, December 4, 2013 3:32 PM
  • Mr. Javaman II,

    Thanks for the suggestion. There's a good chance that my code is performing a certain sequence of operations, that used to be allowed under 8.0, but became a violation under the new security features that you mention.

    Wednesday, December 4, 2013 3:41 PM
  • (a bug in the post editor won't let me remove this empty code block. please fix it.)

    Update:

    Luckily, I was able to find the cause of the problem quickly enough by comparing the code differences.

    In the "Remote Desktop app container client sample", the classid is set first:

    // Set object's classid to RDP client control's s CLSID.
    clientControlObject.classid = "CLSID:EAB16C5D-EED1-4E95-868B-0FBA1B42C092";

    and the client control object is then appended as a child to the container element:

    clientControlRegion.appendChild(clientControlObject);

    My application code did these 2 steps in reverse order.

    Having fixed the order, it now works properly after retargetting to Windows 8.1

    Best Regards,

    -Paul



    • Edited by paulkore Wednesday, December 4, 2013 4:53 PM
    • Marked as answer by paulkore Wednesday, December 4, 2013 4:53 PM
    Wednesday, December 4, 2013 4:51 PM