C# 通过citrix访问应用程序时获取客户端计算机的默认打印机

C# 通过citrix访问应用程序时获取客户端计算机的默认打印机,c#,C#,我有一个windows应用程序,它在应用程序启动时将客户机的默认打印机插入数据库。它在我的解决方案中非常有效。我使用下面的代码来保存它 如果我在citrix中托管此应用程序,那么我应该如何执行相同的功能? 问候,, 西瓦吉思S string GetDefaultPrinter() { string defaultprinter = ""; try { PrinterSettings settings = new

我有一个windows应用程序,它在应用程序启动时将客户机的默认打印机插入数据库。它在我的解决方案中非常有效。我使用下面的代码来保存它

如果我在citrix中托管此应用程序,那么我应该如何执行相同的功能?

问候,, 西瓦吉思S

string GetDefaultPrinter()
    {

        string defaultprinter = "";
        try
        {
            PrinterSettings settings = new PrinterSettings();
            foreach (string printer in PrinterSettings.InstalledPrinters)
            {

                settings.PrinterName = printer;
                if (settings.IsDefaultPrinter)
                {
                    defaultprinter = printer;
                    string[] array_printer= defaultprinter.Split('\\');
                    defaultprinter= array_printer[3].ToString();
                    string query = string.Format("SELECT * from Win32_Printer WHERE Name LIKE '%{0}'", defaultprinter);
                    ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
                    ManagementObjectCollection coll = searcher.Get();

                    foreach (ManagementObject localprinter in coll)
                    {
                        foreach (PropertyData property in localprinter.Properties)
                        {
                            // Console.WriteLine(string.Format("{0}: {1}", property.Name, property.Value));
                            //MessageBox.Show(property.Name+"-"+ property.Value);
                            if (property.Name == "ShareName")
                            {
                                defaultprinter = property.Value.ToString().Trim();

                            }
                        }
                    }
                }
            }

        }
        catch (Exception ex)
        {
            MessageBox.Show("defaltprinter- "+defaultprinter+"-" + ex.Message);
        }
        return defaultprinter;
    }<br>