Win32Api 演示【控制任务栏】
<..========================================================
== ==
== Macrobject Nuva Samples ==
== ==
== Copyright (c) 2004-2006 Macrobject Software ==
== ==
== ALL RIGHTS RESERVED ==
== ==
== http://www.macrobject.com ==
== ==
========================================================..>
<.
var SW_HIDE = 0;
var SW_SHOWNORMAL = 1;
var MB_ICONINFORMATION = $00000040;
var dll = System.Win32Api'user32',
'FindWindow', 'FindWindow', 'SS', 'L' 'ShowWindow', 'ShowWindow', 'LL', 'L' 'MessageBox', 'MessageBox', 'ISSI', 'I' var hwnd = dll.FindWindow'Shell_TrayWnd', '' dll.MessageBox0, 'Hide it', 'Win32Api Demo', MB_ICONINFORMATION dll.ShowWindowhwnd, SW_HIDE dll.MessageBox0, 'Show it', 'Win32Api Demo', MB_ICONINFORMATION dll.ShowWindowhwnd, SW_SHOWNORMAL.>
<..
【简介】
本例是一个 Windows Api 演示程序,目的为了演示在 Nuva 语言中如何调用 Windows 的 dll 动态库。
在 Nuva 语言中,调用 dll 动态库函数,需要声明这些函数的接口(具体声明的方式可以参见本例),然后直接调用即可。
【看点】
1、本例首先声明了 user32 中的三个函数,分别给出其别名、函数名称、参数类型、返回类型,声明方式如下:
win32ApiObj = System.Win32Api(dllName, funDefSet) 或者
win32ApiObj = System.Win32Api.New(dllName, funDefSet)
这个函数返回一个 Win32Api 对象,通过这个对象可以直接调用 dll 的函数。
funDefSet 是一个函数集合,每个函数需要声明别名、函数名称、参数类型、返回类型信息。
调用 dll 函数时可以直接使用别名。
在 Nuva 语言中,dll 数据类型直接采用首字母缩写声明即可,有如下类型:
N :Number
L :LongWord
I :Integer
S :String
P :Pointer
C :Callback
V :Void
其中,Pointer 用于有返回的参数(ref param),Callback 用于回调(未实现,暂时保留)
2、本例为了 WinApi 的调用,在程序开始部分声明了一些变量,这些变量都采用 WinApi 的命名;有些值是十六进制的,在 Nuva 语言中,可以采用 $ 或者 0x 开头的方式声明十六进制数字。
3、程序中首先通过 FindWindow 查找任务栏的句柄,然后通过 ShowWindow 将其隐藏和显示。
4、程序中还通过 MessageBox 函数弹出传统的 Windows 消息框,虽然这个消息框的灵活性远逊色与 System.Ui.ShowMessage,但是还是可以为其定制不同的消息方式。
【扩展】
本例是一个 Windows Api 演示程序,通过声明 Windows dll 的函数接口,可以很轻易的在 Nuva 语言中调用 Windows 的 Api 函数。
【运行结果】
运行这个示例,可以看到任务栏被隐藏,然后再次显示出来,同时伴随着两个消息框的弹出。
..>
posted on 2006-09-28 17:37 Wisdom-zh 阅读(1442) 评论(0) 编辑 收藏 举报