前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python监视用户计算机桌面窗口焦点的变化情况

Python监视用户计算机桌面窗口焦点的变化情况

作者头像
Python小屋屋主
发布2018-04-16 14:26:19
2K0
发布2018-04-16 14:26:19
举报
文章被收录于专栏:Python小屋Python小屋Python小屋

代码运行后,可以实时监视用户计算机桌面上拥有焦点的窗口,如果焦点有切换就会给出提示。

from ctypes import *

from time import sleep

from datetime import datetime

#方便调用Windows底层API函数

user32 = windll.user32

kernel32 = windll.kernel32

psapi = windll.psapi

#实时查看当前窗口

def getProcessInfo():

global windows

#获取当前位于桌面最顶端的窗口句柄

hwnd = user32.GetForegroundWindow()

pid = c_ulong(0)

#获取进程ID

user32.GetWindowThreadProcessId(hwnd, byref(pid))

processId = str(pid.value)

#获取可执行文件名称

executable = create_string_buffer(512)

h_process = kernel32.OpenProcess(0x400|0x10, False, pid)

psapi.GetModuleBaseNameA(h_process, None, byref(executable), 512)

#获取窗口标题

windowTitle = create_string_buffer(512)

user32.GetWindowTextA(hwnd, byref(windowTitle), 512)

#关闭句柄

kernel32.CloseHandle(hwnd)

kernel32.CloseHandle(h_process)

#更新最近两个窗口的信息

windows.pop(0)

windows.append([executable.value.decode('gbk'),windowTitle.value.decode('gbk')])

def main():

global windows

windows = [None, None]

while True:

getProcessInfo()

#如果用户切换窗口则进行提示

if windows[0] != windows[1]:

print('='*30)

print(str(datetime.now())[:19],windows[0],'==>',windows[1])

sleep(0.2)

if __name__ == '__main__':

main()

部分运行结果如下:

2016-08-14 09:12:52 ['Explorer.EXE', ''] ==> ['pythonw.exe', 'focusSwitch.py - C:/Python35/focusSwitch.py (3.5.1)']

==============================

2016-08-14 09:12:56 ['pythonw.exe', 'focusSwitch.py - C:/Python35/focusSwitch.py (3.5.1)'] ==> ['QQBrowser.exe', '微信公众平台']

==============================

2016-08-14 09:13:11 ['QQBrowser.exe', '微信公众平台'] ==> ['Explorer.EXE', '']

==============================

2016-08-14 09:13:12 ['Explorer.EXE', ''] ==> ['pythonw.exe', '*Python 3.5.1 Shell*']

==============================

2016-08-14 09:13:22 ['pythonw.exe', '*Python 3.5.1 Shell*'] ==> ['Explorer.EXE', '']

==============================

2016-08-14 09:13:32 ['Explorer.EXE', ''] ==> ['pythonw.exe', '*Python 3.5.1 Shell*']

温馨提示:单击文章顶部作者名字旁边浅蓝色的“Python小屋”进入公众号,关注后可以查看更多内容!

欢迎转发给您的朋友,或许这正是Ta需要的知识!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档