J'ai une application Winforms qui génère son propre objet PrintDocument pour l'impression. Il fonctionne très bien dans XP et Windows 7 avec mes propres tests, mais un utilisateur a été faire l'exception suivante dans Vista quand ils choisissent la commande d'impression avec un document ouvert:Erreur bizarre impression objet PrintDocument dans .NET
************** Exception Text **************
System.ArgumentException: Handle 0 is not valid.
at System.Drawing.Printing.PrinterSettings.SetHdevmode(IntPtr hdevmode)
at System.Windows.Forms.PrintDialog.UpdatePrinterSettings(IntPtr hDevMode, IntPtr hDevNames, Int16 copies, Int32 flags, PrinterSettings settings, PageSettings pageSettings)
at System.Windows.Forms.PrintDialog.ShowPrintDialog(IntPtr hwndOwner, WndProc hookProcPtr, PRINTDLG data)
at System.Windows.Forms.PrintDialog.RunDialog(IntPtr hwndOwner)
at System.Windows.Forms.CommonDialog.ShowDialog(IWin32Window owner)
at System.Windows.Forms.CommonDialog.ShowDialog()
at Deck_Studio.DSMain.PrintDeck(Object sender, EventArgs e)
at System.Windows.Forms.MenuItem.OnClick(EventArgs e)
at System.Windows.Forms.MenuItem.MenuItemData.Execute()
at System.Windows.Forms.Command.Invoke()
at System.Windows.Forms.Command.DispatchID(Int32 id)
at System.Windows.Forms.Control.WmCommand(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ContainerControl.WndProc(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Je suis un moment difficile assemblant la nature de cette erreur et les moyens potentiels de la dupliquer. Le manifeste sur l'exécutable est dans le mode d'autorisation "limité" et même l'exécution de l'application en tant qu'administrateur par l'utilisateur génère l'erreur.
Il semble que le pilote d'impression ne se comporte pas (première estimation). Est-ce que cela arrive avec toutes les imprimantes sur l'ordinateur de cet utilisateur? –
Ils ont essayé leur stiller Adobe, écrivain XPS et imprimante de base et ont obtenu l'erreur. –
Donc, il ne semble pas être une imprimante spécifique en faute. Et ce n'est pas un problème d'autorisations. Si ce n'est pas un problème d'O/S (c'est-à-dire l'essayer sur un autre bureau en utilisant Vista), je devrais aller avec la réponse de MusiGenesis: imprimante par défaut non définie. –