Minisoyo社区's Archiver

欢迎注册泡面三国

t526 发表于 2007-11-26 10:04

WM5/6不占内存的来电归属地显示CallerLoc(支持插件)

[b][color=#ff0000]本软件由 mrpotter 原创[/color][/b]
[b][color=#ff0000][/color][/b]
-------------------------------
作者说明:
本软件只单一显示来电地区,不打算加入其他功能。
建议不要放存储卡上(可以放,不过速度和稳定自己测试)。
[color=red]运行一次启用即可,不用加入开机运行。[/color]程序位置改变就先禁用再启用。卸载就先禁用再删文件。
本软件[color=red]平时不运行不占任何内存[/color]。来电时自动后台显示效果见图。

[size=3][color=#ff0000]插件的目的就是主程序callerloc.exe不再加入与核心无关的新功能,并且还把接通震动功能精简分离到插件实现。并不是软件越来越大,而是组合扩展性越来越强。[/color][/size]
[size=3][color=#ff0000][/color][/size]
[size=3][color=#ff0000]11/16 [/color][color=#000000]现有接通锁屏、自动开关蓝牙、随机铃声、未接回信、分钟提醒插件。[/color][/size]
[size=3][color=red]11/12 修改了一些区号数据;增加来电显示联系人部门和职务功能;支持自定义插件(将陆续开发更多插件)[/color][/size]
11/9:过滤了号码里数字以外的内容。去电不再显示“未知”,来电也不会遗留最后一次的地区。callerloc.ini增加一位数字1表示显示已有联系人的部门和职位(比如以前是4位数0000,如果在前面加个1改成10000就启用这个功能)。
[size=3][color=red]对本软件的问题、建议也可以发在本人网站 [/color][url=http://wstart.cn/][color=red]http://wstart.cn[/color][/url]
[color=black]10/29 17:00 更新CallerLoc.dat加入150号段,数据库几乎完美了。主程序没有更新。[/color][/size]
[color=black][size=3]10/28 0:12 加入根据号码前几位或地区自动拒接功能,配置在callerloc.txt,和自定义地区同步判断,不影响性能[/size]
[/color][size=3][color=black][color=red]10/27 17:50 加入CallerLocSet.exe设置界面可以生成CallerLoc.ini。主程序没有更新
[/color][color=black]10/27 00:38 加入了179、12593开头的号码判断[/color][/color]
[size=3][color=#ff0000][/color][/size]
[size=3][color=#ff0000]注意:只有启用CALLERLOC后的通话记录才有地区显示。[/color][/size]
[size=3][color=#ff0000][/color][/size]
[size=3][color=black]10/26 1.0版终于发布,因为我不愿意借鉴其他软件通话记录的显示方式,所以才这么久没有更新,这次是完全重写了。
文件大小做到EXE 11KB 数据258KB(158、159全),[color=red]不占内存的来电、去电(暂时PPC)、通话记录地区显示,支持自定义号码地区[color=black](修改CallerLoc.txt)[/color],只显示陌生号码,接通提醒[/color](默认不启用)。使用说明见附件里的readme.txt
启用新版前请先禁用旧版,数据格式不同,如果要用接通震动功能请先禁用CallVibrate,不过还是以前CallVib能用的能,不能的还是不能。[/color][/size]
[/size]

[color=black]下载附件或 [/color][url=http://wstart.cn/callerloc.rar][color=black]http://wstart.cn/callerloc.rar[/color][/url]



CallerLoc使用了独特的插件技术,使[b]主程序永远保持在最小化状态[/b],而又可以根据自己的需要来实现各种高级功能。而且也方便编程爱好者开发各种处理电话事件,因为你可以不用再去考虑怎么拦截来电等等,而只要去写你需要的功能。
不用担心功能越来越多会让软件的问题越来越多,因为[b]插件和主程序是独立互不影响的[/b]。主程序只在运行时检查一下plugins目录然后执行里面对应的程序而已。如果你只喜欢基本功能,大可以删掉plugins目录,等于没有任何性能损失的基本状态。
[b]具体应用:[/b]
1,PPC接通锁屏防止误操作
下载[url=http://wstart.cn/bbs/upload/cl_be_lockdevice.exe][color=#000000]cl_be_lockdevice.exe[/color][/url]放入plugins中即可

2,随机铃声
[url=http://wstart.cn/bbs/upload/cl_-a_RandRing.exe][color=#0000ff]下载cl_-a_RandRing.exe[/color][/url]放入plugins目录,然后在plugins目录下新建randring目录,把铃声文件放进去,每次来电将顺序选择里面的铃声,支持格式由系统决定,因为这个插件就是每次来电自动更换铃声。
如果要选择其他目录的铃声,要做成快截方式,用记事本打开LNK文件,后面加上路径,比如内容
42#"\Storage Card\plugins\cl_-a_RandRing.exe" \windows\rings\*.*
表示使用\windows\rings\*.*作为铃声

3,来电自动开蓝牙/通话结束关蓝牙
下载[url=http://wstart.cn/bbs/upload/btonoff.exe][color=#0000ff]BTonoff.exe[/color][/url]
然后做一个快截方式,然后用记事本打开LNK文件,内容比如是:
29#"\My Documents\BTonoff.exe"
在后面加上数字1表示打开蓝牙,就是
29#"\My Documents\BTonoff.exe" 1
然后把这个LNK改名为cl_-a_bton.lnk放入plugins目录即可。
这样来电时就会自动打开蓝牙。
如果想通话结束或来电未接/拒绝时自动关闭蓝牙,就同样按上面的方法在快截方式后加上参数0做成cl_-cgh_btoff.lnk
其中的事件触发部分你可以根据插件使用说明自己定制,比如打电话时也可以自动打开蓝牙。

4,接通震动
11/16版后的主程序去掉了接通震动功能。[url=http://wstart.cn/bbs/upload/cl_-e_vibrate.exe][color=#0000ff]下载cl_-e_vibrate.exe[/color][/url]放入plugins即可去电接通震动。如果要来电接通也震动就改名为cl_-be_vibrate.exe。如果要用以前的震动模式1就[url=http://wstart.cn/bbs/upload/cl_-e_vibrate1.exe][color=#0000ff]下载cl_-e_vibrate1.exe[/color][/url]。

5,分钟提醒
[url=http://wstart.cn/bbs/upload/cl_-be_minutes.exe][color=#0000ff]下载cl_-be_minutes.exe[/color][/url]放入plugins即可。默认每到50秒声音提醒,要修改就要做成快截方式然后用记事本打开LNK文件加上参数,比如内容是
42#"\Storage Card\plugins\cl_-be_minutes.exe" 55
就是55秒提醒。

6,未接自动回复短信
文件名cl_c_sendsms.exe表示事件c(见插件功能详细说明)时触发执行。

原理很简单,args[args.Length-1]就是要发送的号码

[b]以下是代码:[/b]
[list=1][*]using Microsoft.WindowsMobile.PocketOutlook

    SmsMessage smsMessage = new SmsMessage();
    smsMessage.Body = "我现在不方便接听电话";
    smsMessage.To.Add(new Recipient("", args[args.Length-1]));
    smsMessage.RequestDeliveryReport = false;
    smsMessage.Send();
    return;

[/list]


[url=http://wstart.cn/bbs/upload/cl_c_sendsms.exe][color=#0000ff]下载cl_c_sendsms.exe[/color][/url] 放入plugins,会自动将plugins\sendsms.txt的内容发送给对方

[b]详细介绍:[/b]
把插件放入CallerLoc下的plugins文件夹即可立即生效。插件事件激发是通过文件名实现的。

比如要实现接通电话时锁定屏幕:
先要找到锁定屏幕的lockdevice.exe
然后把它放到plugins目录,然后重命名为插件文件名格式
cl_激发事件_插件名.扩展名

比如“cl_be_lockdevice.exe”就表示接通电话时CallerLoc会自动执行这个EXE。
其中扩展名可以为EXE、LNK快截方式、TXT、WMA等任何资源管理器可以打开的文件类型。事件为小写的:
a 正在来电
b 来电接通
c 来电拒绝
d 正在去电
e 去电接通
f 去电未通
g 去电通话结束
h 来电通话结束
i GPRS连接
j GPRS连通
k GPRS断开
新短信(还未实现)

事件可以组合,比如cl_be_lockdevice.exe就是b和e的组合。如果事件中有减号,表示不传递参数给这个应用程序,比如cl_-be_lockdevice.exe,因为有的命令不接受额外的参数。

[b]开发接口:
[/b]用C或.NET写的程序都可以,CallerLoc会附加2个参数给EXE,分别是联系人名字、事件类型、号码,如果参数为空就是减号-。C语言可以通过argv[argc-1]号码和argv[argc-2]事件。C#可以用args[args.Length-1]号码和args[args.Length-2]事件。比如
cl_be_lockdevice.exe 原来程序的参数 张三 e 13812345678

[[i] 本帖最后由 t526 于 2007-11-26 10:28 编辑 [/i]]

Roty 发表于 2007-11-26 12:13

感谢支持minisoyo!

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.