1. Interface: 1 button + 1 combobox;
2. Opening Shadows
using System.Runtime.InteropServices;
3. Code
private void Form1_Load(object sender, EventArgs e) { InitprinterComboBox(); // Initialize the printer drop-down list options }
private void InitprinterComboBox() { // Initialize the printer list PrintDocument printDocument = new PrintDocument(); string defaultPrinter = printDocument.PrinterSettings.PrinterName; // Get the default printer name foreach (string printer in PrinterSettings.InstalledPrinters) { // Get all printer names combobox1.Items.Add(printer); if (printer == defaultPrinter) { // The default printer is set to the first item in the list combobox1.SelectedIndex = combobox1.Items.IndexOf(printer); } } }
private void button1_Click(object sender, EventArgs e) { // Set the default printer button try { if (Externs.SetDefaultPrinter(cmbPrinter.SelectedItem.ToString())) { // Set the default printer MessageBox.Show(cmbPrinter.SelectedItem.ToString() + " Set as default printer successfully! " ); } } catch(Exception ex) { MessageBox.Show( " Failed to set as default printer: " + ex.Message); } }
class Externs { // Call win api to set the printer with the specified name as the default printer [DllImport( " winspool.drv " )] // Introduce public static extern bool SetDefaultPrinter(String printerName); // Define external library functions }