首页 > 设计 > 媒体动画 > 正文

Authorware综合技巧:用Authorware耍转控制面板

2020-09-19 18:39:35
字体:
来源:转载
供稿:网友
windows提供的控制面板真是酷呆了!我们可以用它轻而易举的设置墙纸、屏幕的分辨率、窗口的颜色和外观、多媒体属性、输入法、鼠标、打印机、游戏控制器、调制解调器、internet属性等等……
   我们需要通过windows api调用,才能够达到我们的目的。因此,首先解释一下windows api的基本概念。windows作为一个多任务操作系统,不仅协调着应用程序的执行、分配存储器、管理系统资源等任务,同时可以被视为一个巨大的服务中心。该中心提供各种各样的服务,诸如,帮助应用程序打开窗口、描绘图形、使用外部设备等;每种服务都可以看作是一个函数,这些函数的服务对象是应用程序(application),因而被称之为应用程序编程界面(application programming interface),简称——api函数。凡是在windows工作环境下执行的应用程序,都可以调用windows api函数;在authorware中,同样也可以调用部分的windows api函数。
  要想调用控制面板,我们只需要用到一个windows api函数——winexec函数,该函数已被封装在用户自定义函数文件winapi.u32中。下边就具体说说如何调用控制面板:

一、启动您的authorware4.0或者authorware 5 attain。
二、新建一个文件(authorware会自动把它取名为untitled)。
三、载入所需的函数。
1.单击快捷工具栏中的“functions”按钮(或者按快捷键“ctrl+shift+f”),打开“functions”对话框。
2.单击“functions”对话框里“category:”组合框的按钮,在弹出的列表框中,单击选中“[untitled]”项。
3.单击“load...”按钮,这时会出现一个“load function”对话框。
4.在“文件名(n):”文本框里,输入“c:/authorware 4/winapi.u32”(这里不要输入“”),将会弹出“custom functions in winapi.u32”对话框。
5.在函数列表框中,找到并单击选中“winexec”。
6.单击“load”按钮,将函数winexec载入authorware应用程序,出现在“functions”对话框的列表中(实际上,函数并未真正载入应用程序,而只是有一条链接被连接到了包含代码的文件中)。
7.从工具调色板中拖一个计算图标到流程线上,命名为“调用控制面板”。
8.双击打开“调用控制面板”图标,单击选中“functions”对话框列表中的“winexec”函数,单击“paste”按钮,将“winexec”函数粘贴到计算图标中(代码如下)。 winexec( lpcstr lpcmdline, uint ucmdshow )
这里,“winexec”函数的功能是运行规定的应用程序;lpcstr lpcmdline是一个命令行参数,取值为包含命令行的字符串,可以是文件名加上可选的参数;如果文件名不包含路径,那么windows将按如下次序搜索目录:
a.当前目录→b.windows目录→c.windows系统目录→d.包含当前任务的可执行文件的目录→e.由path环境变量所指定的目录→f.网络中映射的目录
uint ucmdshow参数指定如何展示windows应用程序窗口,取值可以是下列整数之一——
0:隐藏窗口并使另一窗口活动,1:激活并正常显示窗口,2:激活并最小化窗口3:激活并最大化窗口4:以最近的尺寸和位置显示窗口,但不激活,5:激活并依当前尺寸和位置显示窗口6:最小化窗口并激活顶层窗口7:最小化窗口,但不激活8:以当前状态显示窗口,但不激活,9:激活并显示窗口、恢复原始尺寸
9.单击“done”按钮,关闭“functions”对话框。
四、调用控制面板。
只需将“调用控制面板”图标中的代码改为:
winexec("rundll32.exe shell32.dll,control_rundll",1 )
——以上语句的作用,与按下“开始”菜单的“设置→控制面板”完全一样。
单击快捷工具栏中的“play”按钮(或者按快捷键“ctrl+r”),运行一下程序,控制面板就乖乖的出来了。在应用程序中,有的时候仅仅调出控制面板来,往往还不能满足我们的需要。比如说,当我们检测到用户的显示分辨率为640*480,提示他将显示分辨率改为800*600时,我们更希望能在用户确认后直截了当的调出控制面板的子功能——显示器属性设置。要调用控制面板的子功能,也很容易。
五、调用控制面板的子功能。
以下为您列出了调用控制面板常用的各项子功能的代码:
辅助工具选项——winexec("rundll32.exe shell32.dll,control_rundll access.cpl",1 )
添加/删除程序——winexec("rundll32.exe shell32.dll,control_rundll appwiz.cpl",1 )
显示器属性——winexec("rundll32.exe shell32.dll,control_rundll desk.cpl",1 )
internet属性——winexec("rundll32.exe shell32.dll,control_rundll inetcpl.cpl",1 )
区域设置——winexec("rundll32.exe shell32.dll,control_rundll intl.cpl",1 )
游戏控制器——winexec("rundll32.exe shell32.dll,control_rundll joy.cpl",1 )
鼠标——winexec("rundll32.exe shell32.dll,control_rundll main.cpl",1 )
多媒体——winexec("rundll32.exe shell32.dll,control_rundll mmsys.cpl",1 )
调制解调器——winexec("rundll32.exe shell32.dll,control_rundll modem.cpl",1 )
网络——winexec("rundll32.exe shell32.dll,control_rundll netcpl.cpl",1 )
32位odbc——winexec("rundll32.exe shell32.dll,control_rundll odbccp32.cpl",1 )
口令——winexec("rundll32.exe shell32.dll,control_rundll password.cpl",1 )
电源管理——winexec("rundll32.exe shell32.dll,control_rundll powercfg.cpl",1 )
扫描仪与数字相机属性——winexec("rundll32.exe shell32.dll,control_rundll sticpl.cpl",1 )
系统——winexec("rundll32.exe shell32.dll,control_rundll sysdm.cpl",1 )
拨号属性——winexec("rundll32.exe shell32.dll,control_rundll telephon.cpl",1 )
日期/时间——winexec("rundll32.exe shell32.dll,control_rundll timedate.cpl",1 )
与调用控制面板相比,调用控制面板的子功能的代码只是多了一个 *.cpl。以cpl为扩展名的文件,实际上就是控制面板的子功能程序文件;某些软件在安装时,也会安装自己专用的cpl文件,比如:photoshop的adobe gamma.cpl。
六、调用控制面板内建的子功能。
寻找windows系统目录中的*.cpl文件之后,您会发现:键盘、打印机、字体、输入法等子功能都没有对应的*.cpl文件,如何调用这些子功能呢?代码如下:
键盘——winexec("rundll32.exe shell32.dll,control_rundll main.cpl @1",1 )
打印机——winexec("rundll32.exe shell32.dll,control_rundll main.cpl @2",1 )
字体——winexec("rundll32.exe shell32.dll,control_rundll main.cpl @3",1 )
输入法——winexec("rundll32.exe shell32.dll,control_rundll main.cpl @4",1 )
七、指定起始选项卡。
使用以上方法后,您会发现每一个控制面板的子功能被调用后,起始选项卡一律都停留在第一个选项卡上,可不可以任意指定起始选项卡呢?有两种情况,举例说明如下:
对于控制面板*.cpl文件对应的子功能,指定起始选项卡的方法如下:
指定“游戏控制器”起始选项卡为第二个选项卡——winexec("rundll32.exe shell32.dll,control_rundll joy.cpl,,1",1 )
需要注意的是,选项卡一律从0算起。对于控制面板内建的子功能,指定起始选项卡的方法如下:
指定“键盘”起始选项卡为第二个选项卡——winexec("rundll32.exe shell32.dll,control_rundll main.cpl @1,1",1 )
由于windows并未规定所有的cpl文件都得遵守上述的参数指定方式,所以,对于某些cpl文件,上述的参数指定方式可能会失效,比如:ie所提供的inetcpl.cpl。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表