Bonjour,

je viens de faire un tkinter pour choisir l'imprimante et lancer une impression et j'aimerai avoir la possibilité de garder l'imprimante sélectionnée lors du prochain lancement de ce programme.

J'imagine qu'il y a peut être la possibilité de créer un fichier config.txt et que le programme devrait pouvoir y lire dedans est ce que je suis sur la bonne piste ou est ce qu'il y a mieux à faire ?

mon prog est là :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import win32print
import win32api
from tkinter import filedialog, Listbox, Tk, ttk, N, S, W, E, StringVar, Button
import tkinter as tk
 
Imprimante = []
 
global selected_printer
 
 
def choix_imprime(event):
    global selected_printer
    selected_indice = lbl.curselection()
    selected_printer = ",".join([lbl.get(i) for i in selected_indice])
    selected_printer = '"' + selected_printer + '"'
    Texte.set(selected_printer)
 
 
def imprime():
    FILE_PATH = 'c:\\dfi_5012\\pdf'
    fichier = filedialog.askopenfilename(initialdir=FILE_PATH)
    fichier = '"' + fichier + '"'
    win32api.ShellExecute(0, "printto", fichier, selected_printer, None, 0)
 
 
for (Flags, pDescription, pNameL, pComment) in list(
        win32print.EnumPrinters(win32print.PRINTER_ENUM_LOCAL, None, 1)):
    Imprimante.append(pNameL)
for (Flags, pDescription, pNameR, pComment) in list(
            win32print.EnumPrinters(
                win32print.PRINTER_ENUM_CONNECTIONS, None, 1)):
    Imprimante.append(pNameR)
imprim = Tk()
Texte = StringVar()
imprim.title("Choix de l'imprimante")
mainframe = ttk.Frame(imprim, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, S, W, E))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
 
labl = ttk.Label(mainframe, text="Choix de l'imprimante")
labl.grid(column=0, row=0, sticky=(W, E))
 
 
var = tk.Variable(value=Imprimante)
lbl = Listbox(mainframe, selectmode="BROWSE", listvariable=var)
lbl.grid(column=0, row=1, sticky=(W, E))
 
selected_printer = StringVar()
text = tk.Label(mainframe, textvariable=Texte, width=30)
text.grid(column=1, row=0, sticky=(W, E))
 
btn = Button(mainframe, text="Lancer l'impression",
             command=lambda: imprime())
btn.grid(column=1, row=1, sticky=(E, W))
for i in range(0, len(Imprimante)):
    lbl.insert(i, Imprimante[i])
selected_indice = lbl.curselection()
 
lbl.bind('<<ListboxSelect>>', choix_imprime)
imprim.mainloop()