Hallo Community,
Ich möchte jetzt einen Netzwdrucker für den Benutzer X mappen, hier die Methode dafür:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| using System; using System.Windows.Forms; using System.Management;
public static void AddPrinter(string sPrinterName) { ManagementScope oManagementScope;
try { oManagementScope = new ManagementScope(ManagementPath.DefaultPath); oManagementScope.Connect();
ManagementClass oPrinterClass = new ManagementClass(new ManagementPath("Win32_Printer"), null); ManagementBaseObject oInputParameters = oPrinterClass.GetMethodParameters("AddPrinterConnection");
oInputParameters.SetPropertyValue("Name", sPrinterName);
oPrinterClass.InvokeMethod("AddPrinterConnection", oInputParameters, null);
MessageBox.Show("OK!"); } catch (Exception ex) { MessageBox.Show(ex.Message); } } |
Leider wird das Programm nicht von dem Benutzer ausgeführt der den Drucker haben soll, sondern von einem anderen (mache das auf einem Terminal Server).
Was auch funktionieren würde wäre ein Mutterprozess der alle Benutzer kennt und dann eine andere Exe Datei mit dem endsprechenden Benutzer ausführt, aber wie macht dann das?