使用C#设置Windows的默认打印机

3

我想在点击按钮时为Windows/系统设置设置默认打印机。我希望单击按钮后,出现一个Windows对话框,询问用户设置默认打印机。目前,我正在使用PrintDialog进行此操作,但每次单击按钮时都会更改打印机。我想将所选打印机设置为默认打印机,即使关闭应用程序,也应该保持不变。

private void PrintSettingsBtn_Click(object sender, EventArgs e)
{
  PrintDialog PrintDialog = new PrintDialog();
  PrintDialog.ShowDialog();
  PrinterName = PrintDialog.PrinterSettings.PrinterName;
}
2个回答

10

请问我需要包含哪个库? - Nosheen Javed
您不需要包含任何库:DllImport和MarshaAs都在mscorlib中;winspool.drv是Windows的一部分,因此您已经拥有它。 - Dmitry Bychenko

2

在解决方案资源管理器中右键单击项目,选择“属性”。选择“设置”选项卡,添加“PrinterName”设置。

在代码中使用该设置:

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;
    }
}

它给了我一个异常,设置属性“PrinterName”未找到。 - Nosheen Javed
当我在SolutionExplorer中右键单击解决方案时,它没有给我任何设置。但是当我单击我的一个项目文件夹时,它会打开设置。 - Nosheen Javed
你需要的是项目设置(WindowsFormsApplication1 或类似的名称),而不是解决方案设置。请参见 http://social.msdn.microsoft.com/Forums/getfile/193805 - AlexS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接