这个演示该怎么做?(100分)

  • 主题发起人 主题发起人 wtiebo
  • 开始时间 开始时间
W

wtiebo

Unregistered / Unconfirmed
GUEST, unregistred user!
我想做一个演示怎样操作Windows的小程序:
程序运行前可设置整个演示过程(限于Windows本身的资源),如:
打开"我的电脑" -> 打开"D盘" -> ...-> 激活DOS -> 关机
程序运行后, 用键盘钩子激活演示过程.
我的想法是:
1. 设置演示过程时, 先列出所有可能需要演示的操作. 然后
设置一链表保存用户所要求演示的操作.
2. 演示时, 用一Timer控制整个过程. 调用WinExec(...)执
行操作.
不知是否可行? 如果哪位大虾有具体的方案, 那就更好!
或者,如果哪位大虾有更好的方案, 也望不吝赐教!
万分感谢!
 
这个方案不大保险。如果用户修改了桌面设置怎么办?演示期间乱动鼠标怎么办?
最简单的办法用Lotus的ScreenCamera 或m$的类似工具录下操作过程,放给
用户看就可以了。很多软件的演示都是这么做的。
 
1.你的问题究竟是甚麽?
2.如果让我做我会这样做的:
(1).为演示定义一个虚拟机,定义其相应的严格格式的文本语言
(2).根据要求的演示,书写其程序,要求按时间顺序书写,并在指令中给出相对于
起始时间的一个相对时间位移.
(3).因为不需要精确定时,可以用Timer定时.但在Timer的OnTimer中,
要执行一个循环:
while((下一条指令的执行时间-现在时刻)<T0) //注意不要取绝对值
{
读指令;
执行指令;
}
Timer->Interval = (下一条指令的执行时间-现在时刻);
BTW:
WinExec肯定不能完成所有的工作,所以可能还需要别的手段.
 
To tqz:
> 最简单的办法用Lotus的ScreenCamera 或m$的类似工具录下操作过程,放给
> 用户看就可以了。
我想把演示做得尽量小, 充分利用Windows本身的资源.
To lhz:
>(1).为演示定义一个虚拟机,定义其相应的严格格式的文本语言
这一步具体该怎么做? 我对编程属于菜鸟级, 对这些都不懂, 能否请大虾详细
解释一下?
>(2).根据要求的演示,书写其程序,要求按时间顺序书写,并在指令中给出相对于
> 起始时间的一个相对时间位移.
演示过程由用户动态定义, 按您的意思, 是不是每个演示都得对应一段程序?
谢谢两位大虾!
祈盼各位大虾的不吝赐教!
 
lhz讨论的是演示程序的逻辑结构,在实施过程中可以完全不必采用winexec,
直接用KeyBD_event模拟键盘事件,Mouse_event模拟鼠标事件。
就怕实际运行环境跟设计的不同,比如用户把start按钮移到了屏幕上方...
所以我想讨论的是如何避免这种情况。
比如,假设你准备要按下开始按钮,那么是否可以先找到它的handle,然后
确定按钮的位置,然后就可以让鼠标飞过去点它一下...
同时要屏蔽掉用户的所有动作。
 
To tqz:
>就怕实际运行环境跟设计的不同,比如用户把start按钮移到了屏幕上方...
如果不考虑环境的改变, 那又该怎样做?
>同时要屏蔽掉用户的所有动作。
能否用KBHook和MouseHook蔽掉用户的动作?
 
不考虑环境变化,那就记下击键序列和鼠标移动及点击过程,在程序中模拟就可以了。
 
谢谢tqz大虾!
我是确实不懂这方面的东西!
能不能麻烦那位大虾写个例子什么的? 框架也行! ( 太贪心了,是吧? *_^ )
或者, 哪儿有着方面的参考资料?
大恩不言谢!
 
要做可以完成这种演示的程序是需要深厚的程序功底的.
如果真是菜,就用截屏录成AVI/MPEG的方式.不要把问题
看得太简单.
 
我不太在行,不过,好象有个录制宏的程序,可以记录/播放MOUSE/KEY事件
不要问我哪里有,不知道
 
我记得HOOK(好象是)中有一个Mouse Record的东西,然后有一个对应的RePlay,具体我没有试过。
 
算了,不要毒害人家了,还是用Lotus Camera吧。
做演示么,还是把注意力放在演示的内容上吧,没必要为这种事情费时间。
要是你准备专门做用于做演示的程序,算我没说. ;)
 
各位大虾:
先谢谢你们的帮助!
其实, 我也不想为了做个演示而花这么多时间. 可有些事由不得我!
其中原因相信大家都了解.
如果诸位有好的主意, 或者有这方面的好的资料, 请<a href="mailto:wtiebo@linux.hdpu.edu.cn">告诉我一声</a>, 不胜感激!
不管怎样, 这个东西还得做下去!
再次感谢大家!
 
用demoshield吧!
delphi3的光碟里有
ftp://tracy.bupt.edu.cn/ComeInhere/Developtools/installtools/
demoshield 里也有,路径可能有点错,不过大概差不多。
功能很强大,特别是提出“SCREEN”的生命概念。支持事件、AVI、OLE等。
页面的特效也很多。类似POWERPOINT。
特别是可以很简单地做 CD BROWER ,
现在很多动动都是用他做的。用法也不是很难。
真的很好用,给我加分吧!!
 
还没搞定?分分吧
实际上,先布置界面,然后模拟MOUSE/KEY动作,也可以。
 
还是使用Lotus Camera录制来的实际,最起码我见过的稍大一些的系统的
演示程序都这么干。
可以用Camera将你需要演示的功能分别录制下来,保存。然后使用一些
多媒体工具进行组合,如AuthorWare、Author(方正奥思,有点不好用)什么的。
将各个动画文件糅合在一起,加上相应的介绍文字、动画效果,就一切OK了。
 
记得用Win31的时候有一个记录鼠标、键盘动作功能,记录保存后可以反复重放,就是
你所要的东西。不知道Win95/98里面这个东西是否还存在?
在Delphi IDE环境下,我们可以用[Ctrl][Shift][R]键开始和结束记录,用[Ctrl]
[Shift][P]键播放。
 
你真要实现这样的功能,实在是太复杂了,但总的来说,是一个宏录制过程。若简单
些,则是录制AVI动画之类的东东。你提的这个问题太大,不是简单的几行程序就能
彻底解决的,还是放弃,把分给大家吧,大伙儿打字也打累了。
 
通过 API得到你所要点击的按钮或窗口的Handle,然后做相应的消息发送即可。
 
要成心做也不是很困难,假设屏幕设置不改变,可以:
1。写脚本,主要是鼠标动作
2。作个HOOK程序,解释脚本控制鼠标移动与动作
(1)。GetCurPos,SetCursorPos让鼠标动起来
(2)。WindowFromPoint得到鼠标下的窗体
(3)。SendMessage and wait for result
 
后退
顶部