ezMsg


ezMsg是一个用于局域网的聊天小程序,很适合公司内部使用。

我曾经使用过VCM或者e/pop这两个局域网聊天软件,VCM虽然有即时消息、聊天和传送文件等功能,但程序有1.5M(v1.4); e/pop也是为对等网环境设计的,虽然有4.5M,但功能非常强,算对得住这大小。 但它最大的问题就是功能太多了,界面繁杂得紧,让人云里雾里,老虎吃刺猬--无处下嘴啊, 而且这个程序是老外写的,目前好像还没有汉化版,E文不好的朋友更晕菜了。 [有兴趣的朋友可以看看这两个软件:VCM(http://icqproxy.com/ ), e/pop(http://www.wiredred.com/ ),华军软件园可以下载到(http://www.newhua.com/VCM.htmhttp://www.newhua.com/epop.htm ).

不要拿这个跟ICQ/OICQ这样的即使通讯程序比较,ezMsg只是一个小巧的聊天程序。与ICQ/OICQ不一样,ezMsg不需要单独的服务器程序。只要任何两个人有ezMsg,知道对方的IP,就可以聊天了。


功能点


下载

ezMsg-1.2.1-bin.zip     可执行文件
ezMsg-1.2.1-src.zip   源代码
ezMsg-1.2.1-lib.zip   所用到的一些VCL控件

版本历史记录

最新稳定版本 1.2.1
详细的历史记录请查看changlog.txt

1.2.1  修正一些bug
1.2.0    文件传送改用外部程序调用, ezMsg只从命令行传入目的IP地址
1.1.6    最小化与重新弹出时的Zoom动画效果
1.1.5    添加热键Alt+1..9 -> UserList.Items[0]..[8]
     屏保运行若不自动锁定仍正常弹出界面显示消息
    选项:屏幕保护程序运行时是否允许声音提醒
1.1.4    保存(并提取) 对方ID的MRU List
    好友列表的大图标换成gnomine的图标
    基本的文件传送功能
1.1.3    打开/保存记录时按文件扩展名是否为msg决定是否加密
    只读选项: NoWinHotKey,设置后热键为Ctrl+Alt+?而不是Win+?
    选项: 是否显示抄送与密送框
    选项:是否自动更新对方IP(对主机名不做更新)
1.1.2    视觉提醒新增TrayIcon BalloonHint方式,但只有WinME和Win2K支持这个特性
1.1.1    选项: 自动换行
1.1.0    消息历史采用加密方式保存
    添加密码锁定功能,可自动锁定或者热键锁定

1.0.2    一些小的改进,如新的屏保检测方式
1.0.1    解决了1.0中文字加密后含有控制字符导致消息不能正常发送的问题
1.0    消息采用加密传送
0.9.5    区分正常、外出留言(自动答复)、免打扰模式三种模式;添加密送功能
    短声提示音的音调和长短可配置
0.9.4    添加类似OICQ的多频道功能
    可以用机器名作为对方网络地址
0.9.3    添加Ping/Trace功能
    启动屏幕保护功能
0.9.2    将发送和抄送名单编辑器改为类似notes方式,即多重自动查找
0.9.1    修正了0.9.0中的诸多BUG
0.9.0    改用Delphi编写

遗留问题

    1、自动装载历史记录时会出现多余的空行;
    2、"只在屏保时显示时间"只对接收消息有效,对发送消息无效,(选中“显示时间”时总会显示) (是否考虑删除该功能?)
    3、"需要密码"选项尚未实现 (该功能是否需要?保存在哪里?)
    4、删除ini文件中password后出错?
    5、密送给多人时,消息中显示多人的名字,而不只是被密送人
To-Do:
    1、缺用wav文件作提示音功能
    2、文件传送功能因为有一些问题,已经封掉了
    3、emote

说明

模式:    
    ezMsg有三种在线模式:正常/外出留言(自动答复)/免打扰。外出留言模式下ezMsg收到消息会自动答复,免打扰模式收到消息则不会有任何提醒,对收到的消息也不做答复。
    当程序检测到屏保运行时,按外出留言模式处理。
    用热键Win+A可以实现模式之间的切换
modes  modes2
锁定:    
    ezMsg提供密码锁定功能,程序缺省的密码是sesame(芝麻开门,呵呵),用Win+L可以切换锁定状态。锁定后TrayIcon的右下方会显示一个表示禁止的红圈。
    切换到外出留言模式、免打扰模式时自动锁定,以及屏幕保护启动时,ezMsg会自动锁定(可设置)。
    若实在不喜欢密码锁定功能的话,可以采用1.0系列版本,但要求在1.0.1以上(1.0.1以下版本因为消息加密方式存在问题,不能与高版本相互通信,而且同版本间消息发送也有问题)。

密送:    
    所谓密送是指“发送”、“抄送”中的消息接受人员并不知道的消息接受人员。比如消息发送给GG、JJ,抄送给DD,密送给MM,则GG、DD、JJ收到的消息是
        imaq(对GG、JJ说,抄送: DD): xxxxxxxxxxxxxxxxxxxxxxxxxx
    而MM接受到的消息是
        imaq(对GG、JJ说,抄送: DD,密送: MM): xxxxxxxxxxxxxxxxxxxxxxxxxx
    GG、JJ和DD并不知道消息也发送给了MM(当然是PPMM, ^-^)。

热键列表:
    缺省的热键都是同win键组合在一起的,但如果你不想使用这个键(比如象我一样经常用VNC远程访问机器使用ezMsg),可以在minimsgr.ini中[main]节加上NoWinHotKey=1,    然后重新启动ezMsg(这个选项对程序是只读的),热键都组合到Ctrl+Alt上了
    Win+X/Ctrl+Alt+X    显示/隐藏主界面
    Win+C     隐藏主界面(close)
    Win+S/Ctrl+Alt+S     启动屏幕保护程序(screen saver)
    Win+A/Ctrl+Alt+A     模式循环切换(actvie,原来只有激活与否两种选项)
    Win+L/Ctrl+Alt+L     锁定/解除锁定(lock)
注意程序如果注册第一个热键Win+X失败(可能别的程序已经占用了),就会自动将所有热键转为Ctrl+Alt+??方式。
    可以在选项栏关闭系统热键功能


补充说明

关于短声提示音的音调和长短可配置
    不是通过界面配置的,是修改minimsgr.ini,在[notify]一节中可添加如下两个参数
    BeepTone=100  
    BeepTime=100    
BeepTone是音调,数字越小就越低沉,缺省为440(办公室用的话,高了点儿,建议为100)
BeepTime表示持续时长,单位是毫秒,缺省为150
程序不对这两个参数做写操作;每次响铃时均会去读,即可以随时修改,立即生效

关于屏幕保护检测
   从1.0.2版本起采用了TScreenSaverCheck代替原来的ScrScan模块,系统资源的消耗会比原来减少一些
因为该控件只检查GetForegroundWindow,而原来的ScrScan是采用了EnumWindows调用,资源消耗很大。
当然该控件仍然离不开Timer,因为Windows自动屏保是的确会给程序发通知,但人工启动时就不会
   原来的ScrScan为了能够检测到一些非Windows标准屏保,除了运行着的窗口的标题及其,还检查了各进程的程序文件名是否以.scr结尾(取得进程文件名是调用CreateToolhelp32Snapshot,这个函数也挺耗资源)。但TScreenSaverCheck只检查类名是否为'WindowsScreenSaverClass',所以某些非Windows标准屏保可能检测不到,为了在我修改这个类之前不影响MiniMessenger的使用,我在附加的msgrtool中添加了一个功能,帮助确定你所使用的屏保程序是否能被MiniMessenger检测到。

TrayIcon BalloonHint
1.1.2版本新增提示方式TrayIcon BalloonHint,如下图所示,但只有WinME和Win2K支持该特性;
 trayhint

隐藏选项汇总

后面是缺省值
[main]
      NoWinHotKey=0   ;不使用Win做系统热键
      DebugMode=0        ;调试模式,显示调试窗口
      AutoSaveLimit=10  ;积累了多少条消息后自动备份
      AutoSaveName=mmdd".bak"  ;自动备份的文件名格式,格式参考FormatDateTime
      StartLocked=1    ;启动时是否自动进入锁定模式
      EncryptedSave=1    ;自动保存时是否加密保存
[notify]
      BeepTone=100    ;提示音的频率
      BeepTime=100    ;提示音的持续时间,单位毫秒
      BalloonTimeOut=15    ;提醒方式为TrayIcon BalloonHint时,显示BalloonHint的时长

版权

      ezMsg is free to use and distribute, as long as you are not selling it for profit.
     Despite the effort that went into building ezMsg, there's no warranty that's free of bugs. You are using it at your own risk.
      If you use this program regularly, you are encouraged to "register" by simply sending an e-mail (even an empty one) to the author ( mailto:imaq@21cn.com ). This will e.g. ensure that you'll be notified about any future releases.


附注

    需要源程序的朋友可以向我索要,倒不是想向朋友炫耀我的代码(其实写的很难看,俺真的不太好意思拿出来献丑),而是如果哪位朋友觉得这个破还有点价值,但等不及我这个慢吞吞的样子,想自己修改以添加自己想要的功能,就来拿一份自己改就是了。但哪位朋友改了,记得也给我一份。
    程序用Delphi 4.03写成,用到了好些其他人写的控件。首先需要Jordan Russell 写的有名的Toolbar97,Toolbar97在Delphi Super Page(http://delphi.icm.edu.pl/ ), 程序员大本营(http://www.csdn.net/ )和Delphi深度历险(http://vcl.vclxx.com/ )上都能找到,其主页地址是http://www.jrsoftware.org/.
    除了Toolbar97之外,需要的其他控件我都打包在-lib文件中了。


岁月不留痕忘了相亲相爱的人
你我也会苍老连模样都记不清
只有你的小东西还藏在我的日记本里
红得像火一样的枫叶上面刻着你和我的心

--谨以此软件纪念一段逝去的岁月