티스토리 뷰

728x90

전 직장에서 유저가 사용중인 window 정보를 수집하는 프로그램을 운영했었다.

당시 client 개발 담당은 아니라서 원본 코드를 볼 일은 잘 없었는데, 문제는 Windows OS만 지원했었다는 것이다.

요즘은 기업에서 Mac을 사용하는 비중이 조금 높아지기도 했고 IT업계에선 더 Mac이 대중화 되었는데 Windows에서만 지원하는게 좀 아쉬웠었다.

그런 생각이 문득 들어 Python을 이용해 현재 활성중인 window 의 정보를 수집해보았다.

Python을 사용한 이유는 Node로 진행해서 Electron으로 프로그램을 만들려고 했었는데, 프로세스 수집 외 부가 작업이 생각보다 많았었다.

Python도 Mac과 Windows UI 개발이 가능하고 비교적 쉽게 수집이 가능해서 Python으로 진행했다.

 

Windows

import win32gui

def get_active_window_title(self):
    hwnd = win32gui.GetForegroundWindow()
    window_title = win32gui.GetWindowText(hwnd)
    return window_title if window_title else "No active window detected"

 

Mac

from AppKit import NSWorkspace

def get_active_window_title(self):
    active_app = NSWorkspace.sharedWorkspace().frontmostApplication()
    app_name = active_app.localizedName() if active_app else "No active application"

    return app_name

 

OS 별로 위 코드를 통해 데이터를 수집할 수 있었고 PyQt5를 통해 각 OS별 앱 UI를 구현할 수 있었다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90