Issue
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()
Thanks!
Solution
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)