屏幕划词的实现

最近朋友让我写一个屏幕取词的小工具,考虑了一下主要步骤大致如下:

1.下全局鼠标钩子,Hook鼠标WM_MOUSEMOVE消息

2. WM_MOUSEMOVE消息函数中设定时器,判断鼠标停留时间

3.触发定时器事件,注DLL到目标进程(鼠标停留进程),可根据鼠标位置判断目标进程(GetWindowThreadProcessId),DLL中Hook目标进程的某些函数,如ExtTextOutW等;

4.使目标进程控件强制刷新,以此触发字符串显示函数

5.将Hook到的字符串通过(管道、共享内存、消息)等方式传回屏幕取词进程

6.卸载目标进程注入的DLL(取消函数钩子)

理论上并不复杂,但在实现时发现不同窗体的绘制函数都不一样,Hook和强制刷新存在一定难度,效率也比较低,甚至可能都不如暴力搜索内存效率高,就退而求其次先写了一个屏幕划词的小东西。

屏幕划词比屏幕取词难度就小很多,设置某个热键,触发热键按下事件时通过剪贴板过度选中的词,然后显示出来,我实现的主要步骤如下:

继续阅读屏幕划词的实现

WordPress修改固定链接后所有页面404解决

刚开始学习WordPress,发现修改固定链接后,除主页外所有页面均为404,发现是rewrite的问题,我的环境是Ubuntu+Apache。

首先执行sudo a2enmod rewrite,sudo service apache2 restart重启apache服务,刷新页面后,发现/etc/apache2/mods-enabled下的rewrite.load仍未修改。

而后找到/etc/apache2下的apache2.conf文件,搜索AllowOverride(可能会搜到好多个AllowOverride,要选择自己网站目录下的),在Directory标签中间

 

将AllowOverride None改为AllowOverride All,保存重启apache服务即可。