2009-05-26 11 views
1

J'ai un problème très étrange lors de l'impression d'une page de test après l'installation de l'imprimante sur le réseau. Tout cela fonctionne très bien et lors de l'exécution du code En tant qu'administrateur ... la page de test est également imprimée. Mais quand je cours le programme "normalement" je reçois un "Accès refusé".PrintTestPage avec C# sous Windows Vista

Voici le code:

// get the printer 
string path = "Win32_Printer.DeviceId='" + printerName + "'"; 
using (ManagementObject printer = new ManagementObject(path)) 
{ 
    // invoke the method 
    object obj = printer.InvokeMethod("PrintTestPage", null); 
    System.Windows.Forms.MessageBox.Show(obj.ToString()); 
} 

obj est toujours 5, ce qui signifie "Accès refusé".

Lorsque j'appelle la méthode "SetDefaultPrinter" de la même manière, tout va bien tant pour l'administrateur que non.

J'espère que tout le monde a une idée.

Merci, Simon

Répondre

1

a résolu le problème. J'ai trouvé un autre morceau de code qui fait la même chose et qui fonctionne dans les deux contextes.

WshShell shell = nouveau WshShell(); chaîne de commande = "RUNDLL32 PRINTUI.DLL, PrintUIEntry/k/n \" "+ printerInfo.PrinterName +" \ ""; objet windowStyle = null; objet waitOnReturn = null; shell.Run (commande, ref windowStyle, ref waitOnReturn);

Alors c'est tout. Merci quand même.

Cheers, Simon

Questions connexes