Utilisez Python pour surveiller Windows et Mac et collecter des informations sur les applications sur lesquelles vous travaillez

introduction

J'entends dire que de plus en plus de gens travaillent à domicile, et beaucoup de gens s'inquiètent du fait que "travaillent-ils tous correctement à la maison?"

Je pense que c'est étrange d'être anxieux en premier lieu, mais je me demande aussi si certaines personnes auront des ennuis si leur patron devient anxieux.

Donc, j'ai pensé que si je pouvais collecter des informations sur les applications que j'utilise en temps réel tout en utilisant un ordinateur, je pourrais réduire un peu cette anxiété, alors j'ai envisagé une méthode.

Ici, je vais résumer la méthode pour "obtenir et afficher le titre de la fenêtre active à chaque fois que la fenêtre active est modifiée".

Environnement d'exploitation

Installation de la bibliothèque

Bibliothèque pour faire fonctionner Mac

Pour Mac, installez la bibliothèque requise avec la commande suivante.

pip install -U PyObjC

Bibliothèque pour faire fonctionner Windows

Pour Windows, utilisez la commande suivante pour installer les bibliothèques requises.

pip install -U pywin32

Créer un script

get_active_window_title.py


#!/usr/bin/env python

import sys

#Pour Mac
if sys.platform == "darwin":
    from AppKit import NSWorkspace
    from Quartz import (
        CGWindowListCopyWindowInfo,
        kCGWindowListOptionOnScreenOnly,
        kCGNullWindowID
    )

    def getActiveWindowTitle():
    
        curr_app = NSWorkspace.sharedWorkspace().frontmostApplication()
        curr_pid = NSWorkspace.sharedWorkspace().activeApplication()['NSApplicationProcessIdentifier']
        curr_app_name = curr_app.localizedName()
        options = kCGWindowListOptionOnScreenOnly
        windowList = CGWindowListCopyWindowInfo(options, kCGNullWindowID)
        
        txt = ""
        
        for window in windowList:
            pid = window['kCGWindowOwnerPID']
            windowNumber = window['kCGWindowNumber']
            ownerName = window['kCGWindowOwnerName']
            geometry = window['kCGWindowBounds']
            windowTitle = window.get('kCGWindowName', u'Unknown')
            
            if curr_pid == pid:
                activeWindowTitle = ownerName + " - " + windowTitle

        return activeWindowTitle

#Pour les fenêtres
elif sys.platform == "win32":
    import win32gui

    def getActiveWindowTitle():
        
        activeWindowTitle = win32gui.GetWindowText(win32gui.GetForegroundWindow());
        return activeWindowTitle

else:
    def getActiveWindowTitle():
        return ""
    
def main():
    bufWindowTitle = ""
    
    try:
        while True:
            activeWindowTitle = getActiveWindowTitle()
            if bufWindowTitle != activeWindowTitle:
                print(activeWindowTitle)
                bufWindowTitle = activeWindowTitle
    except KeyboardInterrupt:
        sys.exit(0)
        
if __name__ == '__main__':
    main()

Courir

Après l'avoir créé, exécutez-le avec la commande suivante.

python get_active_window_title.py

Vous devriez voir le nom de l'application chaque fois que vous changez de fenêtre active.

l'a fait!

Si vous envoyez ceci au serveur spécifié, vous saurez que vous travaillez correctement, et il est normal de se faire dire "Prouvez!"! !! ...D'accord! ...... Je pense que ça va.

Recommended Posts

Utilisez Python pour surveiller Windows et Mac et collecter des informations sur les applications sur lesquelles vous travaillez
Python 3.6 sous Windows ... et vers Xamarin.
Mettez Cabocha 0.68 dans Windows et essayez d'analyser la dépendance avec Python
Comment démarrer le projet Python en 2020 (Windows WSL et Mac commun)
Je souhaite utiliser Python dans l'environnement de pyenv + pipenv sous Windows 10
Étapes pour installer le dernier Python sur votre Mac
Que faire si le Microsoft Store s'ouvre même si vous exécutez python sous Windows
Instructions d'utilisation de l'interface de ligne de commande AWS (Python / awscli) sous Mac OS X
Jusqu'à ce que vous créiez Python Virtualenv sur Windows et lanciez Jupyter
[Hyperledger Iroha] Remarques sur l'utilisation du SDK Python
Installez pyenv sur MacBookAir et basculez Python à utiliser
Mettez à jour le python que vous aviez sur votre Mac à 3.7-> 3.8
[Python] Lorsque vous souhaitez importer et utiliser votre propre package dans le répertoire supérieur
J'ai essayé de changer le script python de 2.7.11 à 3.6.0 sur Windows10
Utiliser Python sur Windows (PyCharm)
[Introduction à Mac] Applications et paramètres Mac pratiques que j'utilise
Notez ce que vous avez fait pour utiliser Flycheck avec Python
Je veux savoir si vous installez Python sur Mac ・ Iroha
Utilisez python sur Raspberry Pi 3 pour éclairer la LED (Hello World)
La route pour installer Python et Flask sur un PC hors ligne
[Introduction à Python] Comment utiliser l'opérateur booléen (et ・ ou ・ non)
Comment utiliser Dataiku sous Windows
Lier Modelica et Python sous Windows
Étapes pour installer python3 sur Mac
Sakura utilisant Python sur Internet
Mettre à jour Mac Python de 2 à 3
Utilisez AWS lambda pour récupérer les actualités et notifier régulièrement LINE des mises à jour [python]
Spécifiez le navigateur à utiliser avec Jupyter Notebook. Surtout Mac. (Et Vivaldi)
Anglais technique> vous utilisez les opérateurs booléens [et, ou, et non] pour ...> Opérations booléennes - et, ou, non
Si vous souhaitez utiliser NumPy, Pandas, Matplotlib, IPython, SciPy sous Windows
Utilisez python sur Raspberry Pi 3 pour éclairer la LED avec le contrôle du commutateur!
Note de travail pour migrer et mettre à jour les scripts de la série Python 2 sur le cloud vers la série 3
Description et résumé de ce dont vous avez besoin pour installer Chainer sur Mac
[Python] Comment utiliser la fonction enumerate (extraire le numéro d'index et l'élément)
Essayez de créer un environnement python et anaconda sur Mac (avec pyenv, conda)
Mettre la liaison MeCab pour Python sur Windows, Mac et Linux avec pip
Déployer et utiliser le modèle de prédiction créé en Python sur SQL Server
Comment installer et utiliser pandas_datareader [Python]
Les messages d'erreur Python sont spécifiques et faciles à comprendre "ga" (SyntaxError sur le côté fermant des commentaires triples "" ")
[Kivy] Comment installer Kivy sur Windows [Python]
Que faire si vous avez installé pyenv sur votre Mac OS en utilisant Homebrew mais que la version python ne change pas
Je veux utiliser Linux sur mac
Comment utiliser l'Assistant Google sur Windows 10
Comment effacer Python 2.x sur Mac.
Mémorandum sur l'utilisation du python gremlin
Remarques sur la construction de Python et pyenv sur Mac
Utiliser sans installer python 2.x sous Windows
python: Comment utiliser les locals () et globals ()
Voir les informations sur les fichiers et les dossiers sur python
Installez python sur xserver pour utiliser pip
Comment utiliser le zip Python et énumérer
GAE --Avec Python, faites pivoter l'image en fonction des informations de rotation d'EXIF et importez-la dans Cloud Storage.
Comment gérer "^ [[A ^ [[B ^ [[C ^ [[D"]] en appuyant sur la touche de direction lors de l'exécution de python sur mac
Comment utiliser is et == en Python
Python open et io.open sont les mêmes
J'ai réussi à résoudre la situation où Python ne fonctionne pas sur Mac
Conseils pour ceux qui ne savent pas comment utiliser is et == en Python
La clé du déploiement d'applications Flask à l'aide de Python Buildpack sur Cloud Foundry (Diego)
Utilisez libsixel pour générer Sixel en Python et générer le graphe Matplotlib vers le terminal.
J'ai essayé d'utiliser Resultoon sur Mac + AVT-C875, mais j'étais frustré en chemin.
Pour éviter de voir l'enfer lors de l'installation de django-toolbelt avec windows, heroku et python3.4 (64bit) ...