"인덱스 파일"을 사용하는 작은 응용 프로그램을 작성하여 몇 번의 단추 누르기만으로 탐색기에서 폴더를 열 수 있습니다. 어쨌든 응용 프로그램이 종료 될 때마다 "백그라운드 프로세스"에서 해당 색인 파일을 업데이트하고 싶습니다. 색인 파일을 업데이트한다는 것은 네트워크를 통해 스캔하는 것을 의미하며 일부 원격 사용자의 경우 몇 분이 소요될 수 있습니다. 그래서 사용자가 프로세스를 중단하지 않도록 스캔 프로세스 중에 콘솔을 숨기고 싶습니다.프로세스가 실행 중일 때 콘솔 닫기
#these are just dummy lines
path = get_user_input()
subprocess.Popen(r'explorer "%s"' % path)
#Here I start my update process
multiprocessing.Process(target=update_index).start()
#end of script, now I want that process to continue until finished while main console closes. I only seem to get one or the other.
나는 또한 사용하여 시도 :
DETACHED_PROCESS = 0x00000008
CREATE_NO_WINDOW = 0x08000000
subprocess.Popen(command, shell=True, stdin=None, stdout=None,
stderr=None,
creationflags=DETACHED_PROCESS|CREATE_NO_WINDOW)
을 별도의 콘솔 창 여전히 아래로 폐쇄의 사용자를 방지에서 어떤 방법을 얻을 수 있었다
내가 유사한 몇 가지 시도 방법.또한이 스크립트를 나중에 py2exe와 같은 형태로 배포하여 나중에 python이 없어도 액세스 할 수 있도록하고 싶습니다. pythonw.exe를 사용하면 문제가되지 않을 것입니다. 또는?
대개 스크립트에 콘솔이 있어야합니까? 그렇지 않으면 pythonw.exe로 실행되는 .pyw 파일을 사용하십시오. – eryksun
BTW,'CREATE_NO_WINDOW'는'DETACHED_PROCESS'를 사용하면 무시됩니다. 'DETACHED_PROCESS'는 자식 콘솔 프로세스를 생성하지 않는 경우에만 콘솔없이 콘솔 앱을 실행하는 것에 대해 의미가 있습니다. 이 플래그를 사용하면 표준 핸들을'NUL' 장치로 재지 정해야합니다. 'CREATE_NO_WINDOW'는 창없는 콘솔을 상속하기 때문에 자식 프로세스에 대해 작동합니다. 비슷하게,'STARTUPINFO'를 사용하여 콘솔 창을 숨길 수 있습니다. – eryksun
예, 스크립트에는 보통 콘솔이 있어야합니다. 첫 번째 부분에서 사용자가 대답하기 위해 두 가지 질문을하도록했습니다. 적어도 그것이 현재 어떻게 진행되고 있는지, 콘솔보다 다른 종류의 창에서 그러한 질문을 할 수있는 가능성이 있음을 나는 사무실에있을 때 시도 할 것입니다. 하위 프로세스 메서드에 대한 플래그에 관해서는 나는 그들이 어떻게 작동하는지에 대한 많은 단서를 가지고 있지 않습니다. 나는 그저 놈들을 발견하고 다른 조합을 시도했습니다. 세부 사항을 좀 더 알려 주셔서 감사합니다! – Saftblandaren