Назначить отдельный принтер по умолчанию для установленных приложений - PullRequest
0 голосов
/ 29 октября 2018

Я хочу индивидуальное назначение принтера по умолчанию для установленных приложений. Должен ли я сделать это с помощью Regedit или есть другой способ. Может ли это приложение быть написано на C #? Что я должен знать, чтобы быть разработчиком приложений с принтером?

https://www.symantec.com/connect/downloads/automatically-change-default-printer-different-programs

 private void FrmPrinter_Load(object sender, EventArgs e)
    {
        // Installed printers
        foreach (string printer in PrinterSettings.InstalledPrinters)
        {
            CmbPrinters.Items.Add(printer);
        }

        // Default printer
        PrintDocument pd = new PrintDocument();
        string defPrinter = pd.PrinterSettings.PrinterName;

        LblDefPrinter.Text = defPrinter;
    }

    private void CmbPrinters_SelectedValueChanged(object sender, EventArgs e)
    {
        // Computer default printer assignment
        string pname = this.CmbPrinters.SelectedItem.ToString();
        Printers.SetDefaultPrinter(pname);
    }

    private void BtnFile_Click(object sender, EventArgs e)
    {
        // I want to assign a printer for the application selected here.
        OpenFileDialog file = new OpenFileDialog();
        file.Filter = "Exe Dosyası |*.exe";  
        file.FilterIndex = 2;
        file.RestoreDirectory = true;
        file.CheckFileExists = false;
        file.Title = "Exe dosyası seçiniz..";
        file.Multiselect = true;

        if (file.ShowDialog() == DialogResult.OK)
        {
            string fileName = file.SafeFileName;
            LblFileName.Text = fileName;
        }
    }
}

public static class Printers
{
    [DllImport("winspool.drv", CharSet = CharSet.Auto, SetLastError = true)]
    public static extern bool SetDefaultPrinter(string Name);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...