Gestion d'imprimante

Signaler
Messages postés
7
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
1 juin 2007
-
Messages postés
7
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
1 juin 2007
-
salut
j'ai un petit problème, je voudrais savoir comment je peux affiche les propriétés de l'imprimante sélectionnée dans une combobox.


Merci de votre aide

4 réponses

Messages postés
273
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
6 février 2009
1
Tu peux avoir la boite de dialogue de choix d'imprimante directement :
PrintDialog

dlg =
new
PrintDialog();
dlg.ShowDialog();

<hr />
ZeBobo5
N'oubliez pas de cloturer votre post.
Messages postés
7
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
1 juin 2007

merci Zebobo5,
le pb c'est que j'ai une combobox qui m'affiche toutes les imprimantse installe, je doit cree un bouton qui me revoie les propriete de l'imprimante selectionnée sans avoir recourt a printdialog.    
Messages postés
273
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
6 février 2009
1
Re, en cherchant dans les API on trouve tout ce dont on a besoin et cela donne :

private
void OpenPrinterPropertiesDialog(
PrinterSettings printerSettings)
{

   IntPtr hDevMode = printerSettings.GetHdevmode(printerSettings.DefaultPageSettings);

   IntPtr pDevMode = GlobalLock(hDevMode);

   int sizeNeeded = DocumentProperties(
this.Handle,
IntPtr.Zero, printerSettings.PrinterName, pDevMode, pDevMode, 0);

   IntPtr devModeData =
Marshal.AllocHGlobal(sizeNeeded);
   DocumentProperties(
this.Handle,
IntPtr.Zero, printerSettings.PrinterName, devModeData, pDevMode, 14);
   GlobalUnlock(hDevMode);
   printerSettings.SetHdevmode(devModeData);
   printerSettings.DefaultPageSettings.SetHdevmode(devModeData);
   GlobalFree(hDevMode);

   Marshal.FreeHGlobal(devModeData);
}
private

void OpenPrinterPropertiesDialog()
{

   PrinterSettings s =
new
PrinterSettings();
   s.PrinterName =
@"[file://\\******************\***** \\******************\*****]";
   OpenPrinterPropertiesDialog(s);
}
[

DllImport("winspool.Drv", EntryPoint "DocumentPropertiesW", SetLastError true, ExactSpelling true, CallingConvention
CallingConvention.StdCall)]

static
extern
int DocumentProperties(
IntPtr hwnd,
IntPtr hPrinter, [
MarshalAs(
UnmanagedType.LPWStr)]
string pDeviceName,
IntPtr pDevModeOutput,
IntPtr pDevModeInput,
int fMode);
[
DllImport(
"kernel32.dll")]

static
extern
IntPtr GlobalLock(
IntPtr hMem);
[
DllImport(
"kernel32.dll")]

static
extern
bool GlobalUnlock(
IntPtr hMem);
[
DllImport(
"kernel32.dll")]

static
extern
IntPtr GlobalFree(
IntPtr hMem);

Et on remercie qui??? , lol

<hr />
ZeBobo5
N'oubliez pas de cloturer votre post.
Messages postés
7
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
1 juin 2007

merci beaucoup pour ton aide ZeBobo5