pyinstaller 등으로 exe 파일을 만든 경우
실행 중인 프로세스 목록을 확인하여
사용자가 중복으로 실행하지 못하도록 막아야할 때가 있다.
import psutil
__PROCESS_NAME__ = "TEST" # 프로그램 이름
process_name_list = []
for process in psutil.process_iter(attrs=['name', 'exe']):
if process.info['exe'] and \
process.info['name'] == f"{__PROCESS_NAME__}.exe":
process_name_list.append(process.name())
if process_name_list.count(f"{__PROCESS_NAME__}.exe") > 1: # 프로그램 실행 중
print("프로그램 중복 실행 시도")
else:
print("프로그램 실행 성공")
** 아래는 wmi 라이브러리를 이용한 코드
속도가 위 코드에 비해 현저히 오래 걸리므로 비추천
import wmi
wmi_obj = wmi.WMI()
process_list = wmi_obj.Win32_Process()
for process in process_list:
print(process.Name, process.ProcessId, process.ExecutablePath)
'Programming > Python' 카테고리의 다른 글
[Python] ini 파일 다루기 (읽기 / 쓰기) (0) | 2024.11.01 |
---|---|
[Python] 실행 중인 윈도우 title과 트레이 아이콘 이름 검색 (0) | 2024.11.01 |
[Python] Pyinstaller 사용 시 tkcalendar 에러 문제 (0) | 2021.12.31 |
[Python] 전달 받은 문자열이 IP 형식인지 체크하는 함수 (0) | 2021.12.31 |
[Python] Windows 메시지 팝업 띄우기 (MessageBox with Windows API) (0) | 2021.12.31 |