利用hook记录和回放键盘鼠标消息制作演示软件,如何处理系统有模式对话框?(100分)

  • 主题发起人 主题发起人 leoyan
  • 开始时间 开始时间
L

leoyan

Unregistered / Unconfirmed
GUEST, unregistred user!
问题缘由:<br>&nbsp; &nbsp; 开发一CAI软件,教学内容为《几何画板》的使用。主程序用AuthorWare开发。<br>《几何画板》为16位程序,不支持OLE。由于教学过程中包含较多的演示,若采用截图<br>的方式记录与回放则有以下问题:<br>&nbsp; &nbsp; 1.若采用静态图则不容易说明问题;<br>&nbsp; &nbsp; 2.由于教学需要演示的屏幕范围较大,若采用动态AVI截图则容量太大,且速度慢。<br>&nbsp; &nbsp; 3.由于《几何画板》的工作方式特殊,手头能得到的所有截图软件都无法截下<br>《几何画板》的动画。<br><br>解决思路:<br>&nbsp; 利用Delphi5.0开发DLL作为AuthorWare的U32扩展函数,在扩展函数中实现利用hook<br>记录和回放键盘鼠标消息,从而使AuthorWare可以利用回放记录下的键盘鼠标消息<br>进行演示。<br><br>已作尝试和发现的问题:<br>&nbsp; &nbsp; 查阅win32函数的功能后(也包括这里的讨论),发现可以使用两个函数实现记录和<br>回放键盘鼠标消息:JournalRecordProc,JournalPlaybackProc。在网络上下载了一个<br>带源码的类似程序(TRecord)。经过运行程序和研究其源码,发现这两个函数也有问题:<br>&nbsp; &nbsp; 1.函数要求“当一个系统的有模式对话框正在被显示,直至此对话框被销毁之前,<br>挂钩过程必须停止对消息的回调”。因此当《几何画板》的操作中出现对话框时将无法<br>记录和回放消息,这将影响演示过程的完整。<br>&nbsp; &nbsp; 2.由于《几何画板》的工作方式特殊(为什么这样我也不知道),当回放到《几何<br>画板》进入动画后,后续的消息就得不到回放。<br>&nbsp;<br>请教如何解决这个问题?<br>如果需要《几何画板》可以到www.k12.com.cn下载或来信索取。
 
如果是用记录钩子,当在使用ctrl+alt+del和windows的快捷键的时候,汇终止记录和回放。<br>这是记录钩子的弊端,不过,还是有办法解决的!
 
还是自己做动画算了。<br><br>第一步:用《几何画板》做好一个含有动画的gsp文件;<br>第二步:不要使用动画按钮,用手工控制让它一点一点地动起来,每动一点就另存一次,<br>依次生成:011.wmf、012.wmf、……,生成的文件越多越密当然越好,但工作量也就大了,<br>你可试试够用就行;<br>第三步:将这一系列wmf文件在Ulead Smart Saver Pro(就是大名鼎鼎的《友立》多媒体制<br>作软件)中打开,一一“优化”成一系列GIF文件,在这里边还可调整这一系列GIF画面出<br>现的顺序,最后输出为GIF动画影象(给安个文件名)。<br>
 
mygod ,和我遇到的问题一样!
 
接受答案了.
 
后退
顶部