Comment obtenir le nom de l'imprimante

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Comment obtenir le nom de l'imprimante

Message par Micoute »

Bonjour à tous,

j'ai une procédure qui devrait me sortir le nom de mon imprimante, mais le problème les caractères ne sont absolument pas lisibles, du à l'Unicode je suppose.

Si quelqu'un a la solution, je suis preneur et je l'en remercie beaucoup.

Code : Tout sélectionner

Procedure.s GetDefaultPrinter()
  Protected PrinterName.s = Space(1000)
  Protected Size = 1000
  
  OpenLibrary(1, "Winspool.drv")
  CallFunction(1, "GetDefaultPrinterA", @PrinterName, @size)

  
  ProcedureReturn PrinterName
EndProcedure
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Comment obtenir le nom de l'imprimante

Message par Ar-S »

Remplaces ton GetDefaultPrinterA par GetDefaultPrinterW pour l'Unicode

Version qui gère les 2 du coup..
Code original de ts-soft que j'ai rebidouillé :wink:

Code : Tout sélectionner

Procedure.s GetDefaultPrinter()
  Protected PrinterName.s = Space(1000)
  Protected Size = 1000
  
  CompilerIf #PB_Compiler_Unicode
      _GetDefaultPrinter.s = "GetDefaultPrinterW"
  CompilerElse
      _GetDefaultPrinter.s = "GetDefaultPrinterA"
  CompilerEndIf
    
  If OpenLibrary(1, "Winspool.drv")
    CallFunction(1, _GetDefaultPrinter, @PrinterName, @size)
  Else
    Debug "Erreur DLL"
      PrinterName ="Imprimante introuvable"
  EndIf
  
  ProcedureReturn PrinterName
EndProcedure

Debug GetDefaultPrinter()
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Comment obtenir le nom de l'imprimante

Message par Micoute »

Merci beaucoup Ar-s et Joyeux Noël à tous.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Répondre