If the property being private is your issue, can't you use reflection to get its value?
> -----Original Message----- > From: Discussion of advanced .NET topics. [mailto:ADVANCED- > [EMAIL PROTECTED] On Behalf Of MIke Collins > Sent: 22 January 2007 21:31 PM > To: ADVANCED-DOTNET@DISCUSS.DEVELOP.COM > Subject: [ADVANCED-DOTNET] PrinterSettings.OutputPort in C# > > I need to find a way to gain access to the name of the printer port when > trying to print. > > What I am trying to do is make sure that the user does not print to an > electronic format. For example PDF, Microsoft Office Image Writer, > PaperPort, etc. I only want the user to be able to print directly to a > physical printer. > > It is possible for the user to change the name of the printer. For > example > the default name for the Adobe PDF printer is "Adobe PDF" but this name > can > be changed by the user to something like "Adobe P.D.F." This would > prevent > me from being able to halt printing based on the printer name. > > BUT!! The PrinterSettings.OutputPort (Which is not public) can not be > changed as easily. I would like to be able to get that value so I can > check > that to make sure that the user is not printing to PDF, etc. > > Does anyone have any clues?? > > Thanks, > Mike > > Here is a small code snipet: > PrintDocument pd = new PrintDocument(); > > while( true ) > { > PrintDialog dlg = new PrintDialog(); > dlg.PrinterSettings = pd.PrinterSettings; > dlg.AllowCurrentPage = false; > dlg.AllowSelection = false; > dlg.AllowSomePages = false; > dlg.AllowPrintToFile = false; > dlg.PrinterSettings.Copies = 1; > dlg.PrinterSettings.DefaultPageSettings.Landscape = > true; > dlg.UseEXDialog = false; > > if( dlg.ShowDialog() == DialogResult.OK ) > { > // Here we check to see if the user is > attempting to > print > // to a printer that we won't accept. (PDF, > etc.) > string temp = > pd.PrinterSettings.PrinterName.ToLower(); > if( temp.IndexOf( "pdf" ) > -1 || > temp.IndexOf( "image writer" ) > -1 || > temp.IndexOf( "paperport" ) > -1 ) > { > MessageBox.Show( "Invalid printer type. > Please select a different printer." ); > } > > =================================== > This list is hosted by DevelopMentor. http://www.develop.com > > View archives and manage your subscription(s) at > http://discuss.develop.com =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com