一位在读研的好朋友有一天找到我,问我制作PC端软件有啥好的语言,我问:“这是咋了?”,朋友答曰:在实验室电脑前总是不知不觉开始摸鱼,自制力不够,想搞个提醒学习的东西,在摸鱼时弹出自己的学习计划,提醒自己做点正事(巴巴托斯躺枪ing)。
我寻思这不我copy 写个python程序就行了。朋友提出更具体的功能需求:鼠标移动到屏幕外的时候会丝滑地出现一个小窗口,比如移动到右上角会出现一张自己设置的图片,从而时时刻刻提醒自己有什么样的ddl。
之后,通过我一番面向搜索引擎编程,做出:使用pyhook监听鼠标事件,当鼠标移动到显示器左上角,3乘以3像素的范围内,系统会打开同目录下“bananabaozi-notice.txt”文件,总共最多能打开三次,除非再关掉一个txt窗口,就可以再打开一次。朋友可以通过这个txt写下ddl从而时不时把鼠标晃到左上角猛地看到ddl然后停止摸鱼行为开始认真学习。当然效果怎么样俺也不知道,待会问问去。
代码贴在下面。我使用win10 64位、python3.8开发,在这之前要pip安装pywin32和pyHook。
在网上搜安装pyhook库死活装不上,于是找到安装pywinhook的办法,使用import pyWinhook as pyHook
还是用上了pyhook。然后再搜一下使用pyinstaller打包py程序为exe,且exe打开后隐藏黑窗口,就完事了。
# -*- coding: utf-8 -*-
import pyWinhook as pyHook
import pythoncom
import os,sys
import win32gui
import win32api, win32con
from win32com.client import GetObject
hWndList = []
flag = 0
def onMouseEvent(event):
global flag
global hWndList
# 监听鼠标事件
# if event.Position == (0, 0): 区域放大点好了
if event.Position[0] < 3 and event.Position[1] < 3 and flag == 0:
flag = 1
win32gui.EnumWindows(lambda hWnd, param: param.append(hWnd)