Authorware UCD 开发大揭秘(五)

类别:Delphi 点击:0 评论:0 推荐:
有趣的是:Marcomedia公司为了保护它自己的版权,在Authorware4.0时代,一再要求使用它开发的多媒体程序要加上“Made With Marcomedia”的标示,可能没多大效果,进入5.0时代后,它强制性的在每个程序结束后显示一个E文的Marcomedia标示的Logo画面,使我们的多媒体程序或课件程序显得不那么专业化,简直大煞风景,如果我们能够先使用某种资源编辑器替换掉它的图标,再去掉这个logo画面,有谁能够知道程序是用Authorware作的呢?如何替换图标这里本人就不再说了,这样的软件还是比较多的,建议使用exescope这个工具,下面我们一起来实现后面的功能:用一个自定义函数quitawfast()代替Authorware原来的退出函数: 

quit(0),让Authorware善始善终吧! 

新建DLL工程,在uses语句中加入:windows,messages,在uses语句之后加入AWPARAM结构声明: 

…… 

uses 

…… 

windows, 

message, 

…… 

type 

AWPARAM = record 

…… 

//这中间别忘了引入你做好的字符串资源哟。 

…… 

//此处为我们实现的函数: 

function quitawfast(awparam:AWPARAM_PTR):boolean;stdcall;//使用隐含参数 

var 

ProcessID,cpid : Cardinal; 

begin 

try 

ProcessID := GetWindowThreadProcessID(awparam.hwnd ,@cpid);//得到进程创建的线程标示符 

TerminateProcess(OpenProcess(PROCESS_TERMINATE,false,cpid),1);//杀死这个进程 

result:=true; 

except 

result:=false; 

end; 

end; 

exports//别忘了导出函数 

quitawfast; 

…… 

两行代码解决问题! 

直接通过句柄关闭Authorware程序,而且因为使用了隐含参数,用户直接用quitawfast()就可以使用,忘掉Quit(0)吧,由于篇幅的原因 

该函数的字符串资源文件这里就不给出了,请读者自行编写(相信不会有什么问题了)。

本文地址:http://com.8s8s.com/it/it4310.htm