Gestion d'imprimante

Messages postés
7
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
1 juin 2007
- - Dernière réponse : azzouzsamir
Messages postés
7
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
1 juin 2007
- 12 avril 2007 à 16:50
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
Afficher la suite 

4 réponses

Messages postés
273
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
6 février 2009
1
0
Merci
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.
Commenter la réponse de zebobo5
Messages postés
7
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
1 juin 2007
0
Merci
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.    
Commenter la réponse de azzouzsamir
Messages postés
273
Date d'inscription
dimanche 5 octobre 2003
Statut
Membre
Dernière intervention
6 février 2009
1
0
Merci
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.
Commenter la réponse de zebobo5
Messages postés
7
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
1 juin 2007
0
Merci
merci beaucoup pour ton aide ZeBobo5
Commenter la réponse de azzouzsamir