after changing default printer and then using win32api.shellexecute all prints sent to the first default printer that i had set it at first in python

65 views Asked by At

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.

0

There are 0 answers