when i change default printer and then using win32api.shellexecute(0,'print',filename,None,'.',0) all prints sent to the first default printer that i had set it at first in python
def printfile(filename):
while True:
printername=input("printername:")
import win32print,time,win32api
try:
global defaultPrinter
defaultPrinter=None
defaultPrinter = win32print.GetDefaultPrinter()
if defaultPrinter != printername:
time.sleep(0.5)
win32print.SetDefaultPrinter(printername)
time.sleep(0.5)
win32api.ShellExecute (
0,
"print",
filename,
None, ".", 0)
time.sleep(3)
win32print.SetDefaultPrinter(defaultPrinter)
except Exception as err:
print(err)
printfile('Black.pdf')
I tried to change the default printer trough my program is running but all prints will send to the first default printer that i had set in the begining of my program running.