PrintSystemDesiredAccess Enumeration (System.Printing)

Switch View :
ScriptFree
.NET Framework Class Library
PrintSystemDesiredAccess Enumeration

Specifies the different access rights (or levels of access) for printing objects.

Namespace:  System.Printing
Assembly:  System.Printing (in System.Printing.dll)
Syntax

Visual Basic
Public Enumeration PrintSystemDesiredAccess
C#
public enum PrintSystemDesiredAccess
Visual C++
public enum class PrintSystemDesiredAccess
F#
type PrintSystemDesiredAccess
Members

Member name Description
AdministratePrinter The right to perform all administrative tasks for the print queue, including the right to pause and resume any print job; and the right to delete all jobs from the queue. This access level also includes all rights under UsePrinter.
UsePrinter The right to add print jobs to the queue and to delete and enumerate one's own jobs.
EnumerateServer The right to list the queues on the print server.
AdministrateServer The right to perform all administrative tasks for the print server. This access level does not include AdministratePrinter rights for the print queues hosted by the server.
None No access.
Remarks

The access rights that are available at each level of access vary according to the following:

  • Whether the print server is a computer or a print server appliance.

  • The operating system that is used.

  • The security updates that are installed.

  • The security policies that are supported.

For this reason, access right descriptions in the "Members" section are typical of the rights that will correspond to each access level, but the access levels listed may provide more or fewer rights on particular systems.

These values are primarily used as parameters for PrintServer and PrintQueue constructors. The constructors will throw exceptions if you use a value that can apply only to another kind of object. For example, do not pass PrintSystemDesiredAccess.AdministratePrinter to a PrintServer constructor.

Examples

The following example shows how to use this enumeration to install a second printer that differs in its properties from an existing printer only in location, port, and shared status.

Visual Basic

				Dim myLocalPrintServer As New LocalPrintServer(PrintSystemDesiredAccess.AdministrateServer)
				Dim sourcePrintQueue As PrintQueue = myLocalPrintServer.DefaultPrintQueue
				Dim myPrintProperties As PrintPropertyDictionary = sourcePrintQueue.PropertiesCollection

				' Share the new printer using Remove/Add methods
				Dim [shared] As New PrintBooleanProperty("IsShared", True)
				myPrintProperties.Remove("IsShared")
				myPrintProperties.Add("IsShared", [shared])

				' Give the new printer its share name using SetProperty method
				Dim theShareName As New PrintStringProperty("ShareName", """Son of " & sourcePrintQueue.Name & """")
				myPrintProperties.SetProperty("ShareName", theShareName)

				' Specify the physical location of the new printer using Remove/Add methods
				Dim theLocation As New PrintStringProperty("Location", "the supply room")
				myPrintProperties.Remove("Location")
				myPrintProperties.Add("Location", theLocation)

				' Specify the port for the new printer
				Dim port() As String = { "COM1:" }


				' Install the new printer on the local print server
				Dim clonedPrinter As PrintQueue = myLocalPrintServer.InstallPrintQueue("My clone of " & sourcePrintQueue.Name, "Xerox WCP 35 PS", port, "WinPrint", myPrintProperties)
				myLocalPrintServer.Commit()

				' Report outcome
				Console.WriteLine("{0} in {1} has been installed and shared as {2}", clonedPrinter.Name, clonedPrinter.Location, clonedPrinter.ShareName)
				Console.WriteLine("Press Return to continue ...")
				Console.ReadLine()


C#

LocalPrintServer myLocalPrintServer = new LocalPrintServer(PrintSystemDesiredAccess.AdministrateServer);
PrintQueue sourcePrintQueue = myLocalPrintServer.DefaultPrintQueue;
PrintPropertyDictionary myPrintProperties = sourcePrintQueue.PropertiesCollection;

// Share the new printer using Remove/Add methods
PrintBooleanProperty shared = new PrintBooleanProperty("IsShared", true);
myPrintProperties.Remove("IsShared");
myPrintProperties.Add("IsShared", shared);

// Give the new printer its share name using SetProperty method
PrintStringProperty theShareName = new PrintStringProperty("ShareName", "\"Son of " + sourcePrintQueue.Name +"\"");
myPrintProperties.SetProperty("ShareName", theShareName);

// Specify the physical location of the new printer using Remove/Add methods
PrintStringProperty theLocation = new PrintStringProperty("Location", "the supply room");
myPrintProperties.Remove("Location");
myPrintProperties.Add("Location", theLocation);

// Specify the port for the new printer
String[] port = new String[] { "COM1:" };


// Install the new printer on the local print server
PrintQueue clonedPrinter = myLocalPrintServer.InstallPrintQueue("My clone of " + sourcePrintQueue.Name, "Xerox WCP 35 PS", port, "WinPrint", myPrintProperties);
myLocalPrintServer.Commit();

// Report outcome
Console.WriteLine("{0} in {1} has been installed and shared as {2}", clonedPrinter.Name, clonedPrinter.Location, clonedPrinter.ShareName);
Console.WriteLine("Press Return to continue ...");
Console.ReadLine();


Version Information

.NET Framework

Supported in: 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Platforms

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
See Also

Reference