Change Some Printer Settings Using The Win32 Api OpenPrinter?
Aug 30, 2010
I try to change some printer settings using the win32 api OpenPrinter,GetPrinter and SetPrinter in VB.Net application.I copied most of the code from this or related newsgroups. However, OpenPrinter, GetPrinter and ClosePrinter works so far but I cannot change the printer settings. SetPrinter returns the error code ACCESS DENIED. I know I have to deal with the desired access mask in the _DEFAULT_PRINTER structure when calling OpenPrinter. Unfortunaltely the declaration of the DEFAULT_PRINTER structure or class I found on the internet doesn't work with the OpenPrinter function.
Public Structure DEVMODE
Public dmDeviceName As String
Dim dmSpecVersion As Short[code]]..........
I am making an application that prints records and I want to set the paper height dynamically. My problem is how to change the settings of the printer programmatically in VB.Net.
Somebody told me that it could be done by going to Device and Printers, select the printer and setting it with the desired height. However, can I do this programmatically?
I managed to print in landscape, however this setting is not being passed onto the printer driver, and when I click on 'preferences' in the printing dialog the printer seems to think that it is printing in portrait. Is there a way to change this in the code, without having to ask the user to do it?
For my current application development I need direct printing technique,For the purpose I refer Microsoft Support page Titled"How to send raw data to a printer using VB.Net "The code snippnet specified is perfect for my application.Refers link [URL]But I need something more like Setting the Printer font to Condensed.By default my printer use the font 10cpi ,by using this font size I limited to print only 80char on A4 sheet,but I have more than 80 char on line so I prefer Condensed font size.
I'm having trouble getting the objects of the PageSetupDialog and the PrintDialog to persist in my.settings Is there an example of this anywhere? Seems like it should be something there is a boiler plate for so I can see where I have gone wrong.Added a System.Drawing.Printing.PageSettings and System.Drawing.Printing.PrinterSettings entries in my.settings but even trying to save these form the results of the dialogs they show as nothing with out a error.
I have to drive files using different settings from the printer driver. Can I change the preferences & settings of the driver from a VB application? Right now I am using a VBScript, using key presses, to drive the files. I am developing an application using VB.net. I want to get away from the key stroke method. It takes to long to drive all of the files at the different printer driver settings.
I found this thread [URL]on saving and loading printer settings It worked fine in XP Virtual Machine, but when I try it on my Windows 7 64 bit it errors on the P.Start Line()I changed from Rundll to PrintUI and it seems to work OK saving the file, but when I try to restore using the code below, it still fails on the P.Start line.What am I doing wrong?
Dim p As New Process p.StartInfo.FileName = "PRINTUI.EXE" p.StartInfo.Arguments = " /Sr /n """ & sPrinter & """ /a ""c:my11_17.dat"" 2 7 c u d" p.Start()
I have a label printer with the driver loaded with the settings in the driver set I can print the exact label that I want, I have the problem that I need to set the default settings in the driver when the software starts. there are 6 of these printers and the only problem we have found is that different operators like to change the settings.
What I need to do is to set the following commands in the driver so each time the system is started (daily) it loads the settings and works properly.
I need to set
Custom Commands Text, Start, Parsed Text
In the Advanced Setup, turn on use printer settings
Other settings would be usfull but as I cannot set these I do not think I will be able to set others.
I was scripting a very basic process manager, with a ListView component, and it was working fine for many days, up until now.Here is the code for getting processes:
Dim Process As New Process() Dim Count As Integer = 0 ListView1.Items.Clear()[code].....
The line of code where I put "*WIN32 EXCEPTION LINE* keeps running into an error(Win32 Exception was unhandled; Access is denied). Here is the full error description:
System.ComponentModel.Win32Exception was unhandled ErrorCode=-2147467259 Message=Access is denied[code]....
As I said before, this had been working for several days, up until now.
I recently made an application which have some settings one of them a saving path
I want to make check if the saving path settings is available or not (drive)
If not so it got a default value which is application path
I tried to Change the default settings in the My.Settings by writing "Application.startuppath"But the application accept it as a string is there any way do dodge this problem?
I have a vb.net app that uses PrintPreviewDialog to print a document. Now I want the user to be able to print to any printer on the network. So, I created a listbox of available printers which works fine. Now, I need to either change the windows default printer to the one selected, or make the PrintPreviewDialog use that printer name.
I was wondering if it is possible to change the Proxy settings("Automatically Detect Settings") in IE without making the change to the registry. I wasn't sure if the Hive is similar in all operating systems, So I figured there has to be an API to make the change, also without having the restart the IE or the computer for that matter.
I really want to do is change the default printer in Windows.No combobox populated with a list, just simply the syntax for changing the default printer.
I get the error mentioned when printing to a network printer.The error does not occur when run under XP/Win2003, in a WinForm app or when a local printer is used.The error does only occur when run as a Windows Service under Vista/Win7/Win2008 and printing to a network printer.The Windows service runs under a network user that has access to the network printer. Before I print I check if the printername (including network path) is ok by looping through the available printers.
I need to print the contents of 3 textboxs to default printer. what examples I have found dont seem to work. I was trying the documentprint1 component as i thought it would be easy but cant figure out how to tell it what to print the second part is to print a variable (string) to the printer as well.no need for user to select just straight to default printer with its default settings
If this were a Windows forms project I have used the System.Drawing.Printing namespace to accomplish my goal. However, I cannot import this namespace into a Class library.Overall here is what I am trying to do:I am trying to set the default printer using this namespace on both Windows XP and Windows 7 workstations. I am using Visual Basic 2008. My ultimate goal is to create a COM dll which is accessed from an older VBA program. The COM Dll will set the default printer to a new printer. Execution will return to the VBA program and it will print a Crystal Report. When the Crystal report is finished the VBA code will use the COM Dll one last time to set the default printer back to the original default Printer.But as I mentioned I cannot import the namespace I want to use into a Class library. Can someone give me some guidance on how to either import the namespace into a Class Library or how to determine the Default printer name and to set the Default printer to a different value?
Update: I was able to add the Imports Namespace after I added a reference to the correct DLL in Project Properties. My project is targeted at the 3.5 .Net Framework. The System.Drawing.Printing DLL is not in the 3.5 framework. That DLL is in the 2.0.50727 framework. After browsing and Adding that DLL, everything is working fine.BUT this leads to a new question. How would determining the default Printer be accomplished in the 3.5 .Net framework?Secondly, am I asking for trouble having a project target the 3.5 framework AND including a 2.0.50727 component in the same project?
What i want to do is simple but at the same time complicated. I have multiple .PDF file and i want to print them all. Thing is, all the .PDF are in 8,5 X 11 paper size. The printer is also on this paper size by default and i want to print them in a different size. I want to change the default printer size programatically so it prints in the right format. I need to change this in the program because i need to print in a few different paper size.
here is some code
Dim Process1 As New Process Dim starter As New ProcessStartInfo("C:Program FilesAdobeReader 10.0ReaderAcroRd32.exe", "/t " + path + filename + " " + printername + "")
I have a VB.NET module that prints out a series of Crystal and PDF documents as a packet. I need a way to temporarily change the user's default printer to the network printer for the PDF report (the Crystal reports are already redirected). Once the module has done its job, I want the module to return the default printer back to its original setting. Since Adobe Reader only works with the default printer, and there does not appear to be a way to redirect that, I need to change the deault for the duration of the module. I tried the following code, but it still sends the PDF output to the local printer.[code]...
I would like to change the output file path of the Adobe PDF Printer via code. Currently I am setting the destination path using the Adobe PDF preferences which works fine, however if I change the path in my program I have to go back to the Adobe printer and manually set the new path. How can I change the Adobe output file path via code?
1) check a Folder Option setting in XP and store it
2) change the setting
3) restore it when I am fished
The Setting is in the Folder Options in the Control Panel. Double click on Folder Options, Goto File Types Tab, Click on the Advance Button. There are three checkboxes at the bottom of the dialog box:
Confirm Open after Download Always show Extension Browse in same Window
I want to change the "Browse in same Window" setting.
Is it possible to change application settings between two projects?
Here's what I'm trying to do- let me know if there's a better way, though:
I have two projects involved, a UI layer and a data access layer. I can modify the connection string at runtime in the UI, but I want to be able to set the connection string on the data access layer the same way. Right now I'm trying to use application settings but I don't know how to access settings from one project in another.
To start with, I know that applications scope settings are read only, and user scope settings are read/write. My problem is this: I am creating an application which will be used in a setting where an "administrative" user (admin in this case does not denote any computer ability whatsoever- just the one in control of the computer) will be installing my application onto a computer where several users will likely use the application. I have a number of program settings which I would like the administrative user to be able to set, and have those settings be used for all users who run the program.
I wanted to know is it posible to change My.Settings location.. for example, not in user folder (dont remember in witch folder, but i know it was in some users folder..), but save in application folder?Cos i write programs portable, so they work if the folder with my program is moved even to different PC..It would be a great if i could use my.settings and store in the application path..Cos i have tried to save in registry, xml file, ini file, and they all are pain in the a*s..
I am trying to change the way my aspx pages load when I double-click on them in my development environment. I wish for the markup to show instead of the design. So, I go into "Tools" -> "Options" -> "HTML Designer" and make my changes. However, I have to do this every time I get into VS. How do I make those changes stick?
I am making an application for my school library, which lets the user see how many books have been borrowed, how many returned, and how many that have not been returned. I am using My.Settings to do this. I have no problem saving the settings, or making them change according to how many books have been returned or borrowed, but when I try to load them into a few labels, I get an error.
[code]...
This is the error I obtain:Conversion from string "Books borrowed so far: " to type 'Double' is not valid.