Delphi

本类阅读TOP10

·分布式网络考试系统原型分析及实现
·游戏外挂设计技术探讨①
·使用HOOK随心监视Windows
·Delphi 水晶报表打包解决
·试题库开发中非文本数据的处理
·如何将几个DBGRID里的内容导入同一个EXCEL表中....的问题
·如何使用Delphi设计强大的服务器程序
·工人线程中关闭窗体的实现
·用DLL方式封装MDI子窗体。
·支持XP下托盘栏气球提示的托盘单元

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Authorware UCD 开发大揭秘(五)

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

有趣的是: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)吧,由于篇幅的原因 

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


相关文章

相关软件