IP Library › Granted Patent US 8,997,172
Granted Patent B2
US 8,997,172 · App. 13/285,362 · Granted Mar 31, 2015

Controlling information disclosure during application streaming and publishing

Inventor: Michael Wookey (Epping, AU)
Assignee: Citrix Systems, Inc.
G06F21/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,997,172
App. No.
13/285,362
Granted
Mar 31, 2015
Kind
B2
Abstract

Various aspects as described herein are directed to systems, method, apparatuses, and software for intercepting requests to copy content, paste content, clip content, cut content, or perform a print screen operation, and either allowing the requested operation to occur or preventing the operation depending upon whether the content is sourced from a streamed application or a non-streamed application, and/or depending upon a streamed application-based policy. This may be performed by, for instance, hooking an appropriate function call to the operating system.

Claims (47)

1. A method, comprising:

detecting, by a computing device, a request to obtain a copy of content displayed by a software application that is being executed by the computing device;

determining, by the computing device, whether the software application is a software application that is streamed to the computing device from a source external to the computing device during local execution of the software application on the computing device;

setting a global variable to contain either a first value responsive to the software application being determined to be a software application that is streamed or a second value responsive to the software application being determined to be a non-streamed software application; and

selectively either pasting or not pasting, by the computing device in response to a request to paste, the content depending upon whether the global variable contains the first value or the second value.

2. The method of claim 1 , wherein:

the setting comprises setting the global variable to contain the first value; and

the selectively either pasting or not pasting comprises preventing pasting, by the computing device, of the content responsive to determining that the global variable contains the first value.

3. The method of claim 1 , further comprising:

responsive to determining that the software application is a software application that is streamed to the computing device from a source external to the computing device during local execution of the software application on the computing device, determining whether a policy allows the content displayed by the software application to be copied,

wherein the setting the global variable comprises setting the global variable to contain the second value responsive to both determining that the software application is a software application that is streamed and determining that the policy allows the content displayed by the software application to be copied.

4. The method of claim 1 , wherein the request to obtain the copy comprises a command selected from one of the following: a copy command, a print screen command, and a snipping tool command.

5. The method of claim 1 , wherein said determining whether the software application is a software application comprises determining whether a predetermined software or data component is active.

6. A method, comprising:

intercepting, by a computing device, a request directed to a software application for digital rights management (DRM) status of content displayed by the software application that is executing on the computing device;

determining, by the computing device, whether the software application is a software application that is streamed to the computing device from a source external to the computing device during local execution of the software application on the computing device;

setting a global variable to contain either a first value responsive to the software application being determined to be a software application that is streamed or a second value responsive to the software application being determined to be a non-streamed software application; and

depending upon whether the software application is determined to be a software application that is streamed to the computing device from a source external to the computing device during local execution of the software application on the computing device, either (1) allowing the software application to respond to the request with a DRM status of the content, or (2) responding to the request that the content is DRM protected.

7. The method of claim 6 , further comprising:

selectively either copying or not copying the content depending upon whether the response to the request for DRM status indicates that the content is DRM protected.

8. The method of claim 6 , further comprising:

responsive to determining that the software application is a software application that is streamed to the computing device from a source external to the computing device during local execution of the software application on the computing device, determining whether a policy allows the content displayed by the software application to be copied; and

responsive to the policy allowing the content to be copied, allowing the software application to respond to the request with the DRM status of the content.

9. A non-transitory computer-readable medium storing computer-executable instructions for performing steps, the steps comprising:

intercepting, by a computing device, a request directed to an operating system of the computing device to obtain a copy of content displayed by a software application that is executing on the computing device;

determining whether the software application is a software application that is streamed to the computing device from a source external to the computing device during local execution of the software application on the computing device;

setting a global variable to contain either a first value responsive to the software application being determined to be a software application that is streamed or a second value responsive to the software application being determined to be a non-streamed software application; and

selectively either allowing the operating system to perform a paste operation or preventing the paste operation, depending upon whether the global variable contains the first value or the second value.

10. The non-transitory computer-readable medium of claim 9 , wherein:

the setting comprises setting the global variable to contain the first value; and

the selectively either allowing the operating system to perform the paste operation or preventing the paste operation comprises preventing the paste operation responsive to determining that the global variable contains the first value.

11. The non-transitory computer-readable medium of claim 9 , wherein the steps further comprise:

responsive to determining that the software application is a software application that is streamed to the computing device from a source external to the computing device during local execution of the software application on the computing device, determining whether a policy allows the content displayed by the software application to be copied,

wherein the setting the global variable comprises setting the global variable to contain the second value responsive to both determining that the software application is a software application that is streamed and determining that the policy allows the content displayed by the software application to be copied.

12. The non-transitory computer-readable medium of claim 9 , wherein the request comprises a command selected from one of the following: a copy command, a print screen command, and a snipping tool command.

13. The non-transitory computer-readable medium of claim 9 , wherein said determining whether the software application is a software application that is streamed comprises:

determining, based on the software application, a particular executable component different from the software application; and

determining whether the particular executable component is being locally executed by the computing device.

14. A method, comprising:

detecting, by a computing device, a request to copy content that is displayed on a display of the computing device by a software application that is being locally executed by the computing device;

determining, by the computing device, whether the software application being executed by the computing device is streamed to the computing device from a source external to the computing device during local execution of the software application on the computing device;

setting a global variable to contain either a first value responsive to the software application being determined to be a software application that is streamed or a second value responsive to the software application being determined to be a non-streamed software application; and

preventing, by the computing device, pasting of the content responsive to determining that the global variable contains the first value.

15. The method of claim 14 , wherein the request comprises a command selected from one of the following: a copy command, a print screen command, and a snipping tool command.

16. The method of claim 14 , wherein the determining whether the software application being executed by the computing device is being streamed to the computing device, from the source external to the computing device, during the local execution of the software application on the computing device comprises:

determining, based on the software application, a particular executable component different from the software application; and

determining whether the particular executable component is being locally executed by the computing device.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2011
From: WOOKEY, MICHAEL
To: CITRIX SYSTEMS, INC.
Reel/Frame 027148/0443 →
Continuity (2)
Provisional Application 61411106 · Nov 8, 2010
Related Publication 20120117611A1 · May 10, 2012