Setting the default Printer for windows using c#

后端 未结 2 450
甜味超标
甜味超标 2020-12-18 11:02

I want to set a default printer for windows/ system setting on a button click. I want to click on a button and want that a windows dialogue should appear asking user to set

相关标签:
2条回答
  • 2020-12-18 11:32

    Try SetDefaultPrinter Windows API function

       using System.Runtime.InteropServices;
    
       ...
    
       [DllImport("winspool.drv", 
                  CharSet = CharSet.Auto, 
                  SetLastError = true)]
       [return: MarshalAs(UnmanagedType.Bool)]
       public static extern Boolean SetDefaultPrinter(String name);
    
       ...
    
       SetDefaultPrinter(PrinterName);
    

    see

    http://msdn.microsoft.com/en-us/library/windows/desktop/dd162971(v=vs.85).aspx http://www.pinvoke.net/default.aspx/winspool/SetDefaultPrinter.html?diff=y

    0 讨论(0)
  • 2020-12-18 11:37

    Right click on the project in Solution Explorer, choose Properties. Select the Settings tab, add PrinterName setting.

    In the code use the setting:

    string PrinterName
    {
        get { return (string)Properties.Settings.Default["PrinterName"]; }
        set 
        { 
            Properties.Settings.Default["PrinterName"] = value;
            Properties.Settings.Default.Save(); 
        }
    }
    
    private void print_Click(object sender, EventArgs e)
    {
        PrintDialog pd = new PrintDialog();
        if (PrinterName != "")
            pd.PrinterSettings.PrinterName = PrinterName;
        if (pd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            // Print
    
            PrinterName = pd.PrinterSettings.PrinterName;
        }
    }
    
    0 讨论(0)
提交回复
热议问题