I wrote a app that restarts explorer.exe but the problem is that after i re-open explorer.exe it should call the main function again, but it doesn’t.
The ‘funny’ stuff that i found is that if i dont open explorer.exe, the main function will be called as it should.
import os def sendCmd(command): return os.system(command) # Main function def Main(): sendCmd('cls') q = input() # Checks for input if q == "1": # If the option 1 is selected sendCmd("taskkill /f /im explorer.exe") # Kills explorer sendCmd("explorer.exe") # Opens explorer Main()
nice question, my guess is that python uses the main thread when explorer.exe is open so it is not going forward to the Main() function and does not do that command. try to close explorer.exe manually and check if the program calls the main function.
Anyway, To solve that you can call the sendCmd("explorer.exe") in another thread and your program will continue to the Main() line (I would use
while True in this case instead of recursion https://www.geeksforgeeks.org/difference-between-recursion-and-iteration/)
th = threading.Thread(target=sendCmd, args=('explorer.exe', )) # Start the thread th.start()
Answered By – רן מורסקי
Answer Checked By – Cary Denson (BugsFixing Admin)