Day 2735 按下Ctrl+Alt+Shift+V后出现Version对话框

同事发消息来求助,说是一按InDesign的原位粘贴快捷键Alt+Shift+Ctrl+V就冒出一个对话框,长这个样子:

casv_version

 

在接下来的排查中发现这个对话框有以下几个特点:

1、在许多程序中按下Ctrl+Alt+Shift+V都会蹦出来,但资源管理器等系统程序里不会;

2、关掉已知会抢占热键的程序(比如QQ等)并不能解决问题。

3、将InDesign这个原位粘贴快捷键更换为其它组合即恢复正常。

网上没有任何答案,一头雾水地到处搜索。考虑到很多程序里都会弹,估计热键被注册成全局了,但究竟哪个程序的Version是1.0.14.161呢?

Google把一堆IP查询网站的结果给了这串长得很像IP地址的数字,一开始以为什么都搜不到了,后来转了一大圈在最后一页找到这么一个俄文网站:

fact_of_ver1_0_14_161

 

立马回头去问同事让他看任务管理器,果然有这个进程,Kill掉之后原位粘贴恢复正常,再找到百度影音的卸载项卸载,重启,再没发生。

百度你能不那么流氓不?你认为这么长的快捷键谁都按不到吗,还敢注册成全局热键……

我讨厌一些国产软件不是没有原因的。

Day 2691 PHPCMS v9 自导入数据不统计点击数

我还在苦那啥地写网站……

这个网站有不少用自写SQL从外部导入的数据,过程中遇到很多问题,其中一个就是这些自行导入的数据无法统计点击数。经查证得知,PHPCMS v9统计点击数是通过调用名为count的API进行的:

$db = pc_base::load_model('hits_model');
if($_GET['modelid'] && $_GET['id']) {
...
$hitsid = 'c-'.$modelid.'-'.intval($_GET['id']);
$r = get_count($hitsid);
if(!$r) exit;

其中最后一句很关键,意思是如果找不到点击数的记录就直接exit,于是这些可怜的自导入数据就失去了被统计的权利。

解决方法:自己写SQL为没有统计记录的条目们建立记录,可参照如下查询进行写入:

INSERT IGNORE INTO `[$db_prefix]_hits` (`hitsid`) SELECT CONCAT('c-[$modelid]-',`id`) FROM `[$db_prefix]_[$source_model_table]`;

其中的$db_prefix、$modelid、$source_model_table需自行按实际情况进行替换,IGNORE的意思是跳过已有记录。

Day 2687 Motorola Milestone 3 充电指示灯

battd_replace

手机出问题了,重新刷了一遍系统,找ROM的时候看见一个小东西,终于知道原来USB口旁边那个小点不是没用的,而是充电灯,只是MOTO给屏蔽掉了(一说充电异常会亮但没见过),文件据说是Defy上来的,实装后充电时效果图如上(右边亮的是从没用过的MiniHDMI)。

修改方法:将附件中的battd复制到/system/bin,注意备份源文件,并将权限修改为一致的rwxr-xr-x(755)。

推荐修改完毕后:
1、清空/data/battd下的内容(不要直接删除目录);
2、删除/data/system/batterystats.bin;
3、重启手机。

bin文件:battd_from_defy.7z

Day 2682 PHPCMS v9 会员注册总提示【请输入正确的手机号码】

单位要求一周内写出一个略有规模的网站来,从头写又要防范太多问题是要死人的,于是用PHPCMS v9垫底。

在重写会员注册模板时出现一个问题:手机号(字段名mobile)原则上是可选项,但无论是否POST上去mobile值,都提示【请输入正确的手机号码】。百度没有任何结果(请别吐槽,Google搜索大陆only的东西真的不大行)只好自己想办法,最后在modules\member\index.php的第115行发现问题:

if(isset($model_field_cache['mobile']) && $model_field_cache['mobile']['disabled']==0)

这一行的上方写的是【查看当前模型是否开启了短信验证功能】,一开始被这行字误导,根本没有向下看,后来逐行脑内运行的时候才发觉这里有问题,如果当前模型有mobile字段且没有禁用,那么前台没有提交info[mobile]时,下面的代码就会出问题:

$mobile = $_POST['info']['mobile'];
if(!preg_match('/^1([0-9]{10})/',$mobile)) showmessage(L('input_right_mobile'));

前台就算提交了input name为info[mobile]的值也没有用,不知道是不是我的理解有误([‘info’][‘mobile’]看起来应该不是info[mobile]),不过PC官方论坛上有人用原始版本关闭短信验证也会出现这个问题,所以更像是原版程序的纰漏。

不知道PC v9当时设计时为什么把短信验证是否开启用这两个条件(模型mobile字段是否存在并且没有禁用)作为判断条件?不应该是调取后台【会员模块配置】的【手机强制验证方式】的值嘛?

修改方法:对于不需要短信验证的站点,将判断条件随便改一下(比如…[‘disabled’]改成 != 0)即可。目前时间紧,没有时间研究真正应该使用的条件,先这样。

Day 2619 洛奇割羊毛新方法:用砸的

mabinogi_wool_collecting_by_hunting4月4日更新后,新开了收集彩蛋的活动,持有篮子追击兔子即可获取彩蛋。

该篮子归属剑类别,所以在剑精通未满的人物上会显示剑精通获得经验,但YY上有人发现了新用途:剪羊毛!

而且剪羊毛的动作和打铁一样!SE也是打铁的声音!可怜的羊……

于是去查了一下彩蛋篮和铁匠榔头的属性:

铁匠榔头:

/equip/righthand/tool/blacksmith/blunt/steel/hammer/02/weapon/Blacksmith_Hammer/smith_repairable/not_ego/

彩蛋篮子:

/equip/righthand/weapon/edged/steel/blade/no_scale/not_dropable/destroyable/not_dyeable/not_enchantable/expiring/not_holyfire/onlybaseattack/misc_repairable/

二者重合的属性有equip(装备)、righthand(装备到右手)、steel(铁的),并无其它交集,猜测彩蛋篮子可以采集是出于weapon(武器)属性,而敲打声来自steel(铁的),至于挥舞的动作,如果打铁属于采集大类下的动作,那么也可以用steel解释得通。

Day 2615 洛奇skillinfo、skillleveldescription XML浅析

给自己写的东西留个纪念

前阵子一时兴起,折腾了一个本地化的技能小册子,因为网上基本查不到公开的内容,所以数据靠自己解析,幸好是XML,相对不难。

不过后来写着写着被洛奇数据的诡异弄烦了,决定放弃,顺便把过往经验留一下,做个参考。
老实说我也不知道整理这个有什么用,就当消磨时间吧。 继续阅读 “Day 2615 洛奇skillinfo、skillleveldescription XML浅析”