网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 网管学堂 > 多媒体 > 3DMax > 基础教程 > 如何在Authorware中关闭外部程序?  

如何在Authorware中关闭外部程序?

2006-08-07  作者:BitsCN整理  来源:中国网管联盟  点评 投稿 收藏

问题 网管网www.bitscn.com

有时需要在Authorware程序中调用其他应用程序打开某些文档,比如WordPowerPoint、记事本、画图等等,打开这些程序后,最好可以再在Authorware程序中将他们关闭,使程序更加智能化,那如何做到在

网管bitscn_com

问题 中国网管联盟bitsCN.com

有时需要在Authorware程序中调用其他应用程序打开某些文档,比如WordPowerPoint、记事本、画图等等,打开这些程序后,最好可以再在Authorware程序中将他们关闭,使程序更加智能化,那如何做到在Authorware中关闭外部程序呢?

网管论坛bbs_bitsCN_com

解决思路

中国网管联盟bitsCN.com

    Authorware中关闭外部程序需要借助于用户自定义函数,常用的有Winapi.u32ActiveM!.u32Budapi.32中的函数,基本原理都是通过程序的类名和标题名获得程序窗口的句柄,然后用函数操作该句柄关闭程序窗口。

网管网www.bitscn.com

具体步骤

网管网www.bitscn.com

1. Winapi.u32 网管u家u.bitsCN.com

在使用Winapi.u32实现关闭外部程序窗口时,需要使用到的相关函数是FindWindow()PostMessage()FindWindow()函数的作用是通过程序类名和窗口标题名两个参数来获取目标程序窗口的句柄,PostMessage()函数的作用是向获取的句柄对应的目标程序发送关闭窗口的指令。例如使用语句JumpOutReturn("notepad.exe", FileLocation^"demo.txt")打开了程序目录下的一个文本文件,然后使用语句Handle:=FindWindow("Notepad" , "demo.txt - 记事本")获取目标程序窗口的句柄并存储在变量Handle中,其中“Notepad”为记事本程序的类名,“demo.txt - 记事本”为程序窗口的标题名;最后使用语句PostMessage(Handle,274,61536,0)即可关闭目标程序窗口,如果文件被修改,则将显示保存文件对话框。

网管联盟bitsCN_com

*  提示:每一种程序窗口都有一个类名,这个是由开发该程序的程序员指定的,比如Authorware的类名为"APWMainClass",常用程序的类名参见表8-1。

网管下载dl.bitscn.com

8-1  常用程序的类名

网管网www_bitscn_com

程 序 名 称

网管联盟bitsCN@com

     网管网www_bitscn_com

Authorware

网管联盟bitsCN_com

APWMainClass 网管联盟bitsCN_com

Director

网管网www.bitscn.com

ASIMainWndClass 网管联盟bitsCN_com

Flash 网管bitscn_com

SmartSketchMDIFrame

中国网管论坛bbs.bitsCN.com

Dreamweaver

网管论坛bbs_bitsCN_com

_macr_dreamweaver_frame_window

网管网www_bitscn_com

Fireworks MX

网管bitscn_com

Fireworks_MX_MainWindow

网管网www_bitscn_com

Photoshop 网管下载dl.bitscn.com

Photoshop 中国网管联盟bitsCN.com

Explorer

网管论坛bbs_bitsCN_com

CabinetWClass 网管u家u.bitsCN.com

Microsoft Internet Explorer

网管联盟bitsCN@com

IEFrame 网管u家u.bitscn@com

Microsoft Word XP 中国网管论坛bbs.bitsCN.com

OpusApp 网管bitscn_com

Microsoft Excel XP

网管论坛bbs_bitsCN_com

XLMAIN 网管联盟bitsCN_com

Microsoft Powerpoint XP

网管联盟bitsCN@com

PP10FrameClass 网管网www_bitscn_com

Microsoft Access XP

网管网www.bitscn.com

OMain 网管网www_bitscn_com

Microsoft Visio 2002 中国网管联盟bitsCN.com

VISIOA 网管网www.bitscn.com

记事本 中国网管联盟bitsCN.com

Notepad

网管联盟bitsCN_com

写字板 中国网管论坛bbs.bitsCN.com

WordPadClass

中国网管联盟bitsCN.com

画图 网管网www.bitscn.com

MSPaintApp

中国网管论坛bbs.bitsCN.com

计算器 中国网管论坛bbs.bitsCN.com

SciCalc 中国网管联盟bitsCN.com

录音机 网管联盟bitsCN@com

SoundRec 网管论坛bbs_bitsCN_com

音量控制 网管网www_bitscn_com

Volume Control 网管网www.bitscn.com

NetMeeting

网管u家u.bitsCN.com

MPWClass 网管u家u.bitsCN.com

MSN Messenger 网管联盟bitsCN@com

MSNMSBLClass

网管u家u.bitsCN.com

Windows Media Player 网管联盟bitsCN_com

WMPlayerApp

网管联盟bitsCN_com

MS-DOS

网管联盟bitsCN@com

ConsoleWindowClass

网管论坛bbs_bitsCN_com

    程序窗口的标题名很容易获取,一般就在程序窗口的左上角,如图8.47所示。对于标题名不显示在窗口界面上的程序,可以在任务栏中查看其窗口标题。 网管u家u.bitsCN.com

网管u家u.bitscn@com

8.47  程序窗口标题 网管下载dl.bitscn.com

2. ActiveM!.u32 网管u家u.bitsCN.com

ActiveM!.u32中用于关闭外部程序的函数有M_CloseApp(className, winTitle)M_ShutApp(className, winTitle),参数className为目标程序窗口的类名,winTitle为程序窗口的标题名。对于MDI(多文档界面)程序,需要指明主窗口的classNamewinTitle。这两个函数的区别为:函数M_CloseApp()是尝试关闭某个程序,关闭前将会提醒用户保存文件;函数M_ShutApp()为强制性关闭某个程序,不出现保存提示。例如:

网管联盟bitsCN@com

M_CloseApp("Notepad", "demo.txt - 记事本") 网管论坛bbs_bitsCN_com

M_ShutApp("APWMainClass", "test")

网管u家u.bitscn@com

3. Budapi.u32

网管bitscn_com

Budapi.u32中用于关闭程序的函数有baCloseWindow(WinHandle)baCloseApp(WinHandle),参数WinHandle为目标程序窗口的句柄。关闭某个程序之前,首先需要使用函数baFindWindow (Class, Title)获取该程序窗口的句柄,参数Class为程序窗口的类名,Title为程序窗口的标题。例如: 中国网管联盟bitsCN.com

Handle := baFindWindow("APWMainClass","test")

网管u家u.bitscn@com

baCloseWindow(Handle)

网管下载dl.bitscn.com

*  技巧:可以用类观察器ClassView获取程序窗口的类名。 中国网管联盟bitsCN.com

*  试一试:读者可以试一试在Authorware中调用Word打开一个Doc文档,然后分别用以上三种方法将目标Word窗口关闭。

网管下载dl.bitscn.com

专家说明

中国网管论坛bbs.bitsCN.com

    每种程序都有自己的类名,而每一个程序窗口又有自己唯一的句柄,例如即使打开了好几个文本文档,他们窗口的类名是一样的,但窗口句柄却不是一样的,一个句柄对应一个程序窗口。对于多文档界面(MDI)程序,需要指定主窗口的类名和标题名。 网管下载dl.bitscn.com

专家指点

网管联盟bitsCN_com

    并不是只有通过Authorware调用的程序窗口才能在Authorware中将其关闭,只要知道了目标程序的类名和窗口标题名,就可以获取窗口对应的句柄,然后将其关闭。同时,获取目标窗口的句柄后,不仅仅可以进行关闭操作,还可以进行窗口拉前、置顶、闪动、最大化、最小化等一系列操作。 网管u家u.bitsCN.com


TAGs程序   外部   关闭   如何   窗口   函数   Authorware   标题   目标    
 上一篇:直接打印3DS MAX的渲染作品   下一篇:3DMA实例:算盘
如何在Authorware中关闭外部程序? 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: