主题:  关于激活窗体的问题

灰色幽灵

职务:普通成员
等级:1
金币:0.0
发贴:114
注册:2001/10/11 10:07:05
#12003/3/14 13:20:16
我想通过DIRECTOR的鼠标点击某个按钮,激活正在运行的另一个EXE文件.请问有谁知道吗?我只查到用buddy插件的ActivateWindow应该可行,具体怎样写呢,是这样说的,我觉得奇怪为什么要把參数设置给OK,不是应该直接激活吗?另外有没有其他不用插件的方法啊?
ActivateWindow (指定活动窗口)
描述:使指定的窗口为活动窗口
用法:Result = baActivateWindow( WinHandle )
变量:整型
WinHandle 是活动窗口的句柄。使D或AW成为活动窗口用baWinHandle()
返回值:整型
1为成功,其他为失败
示例: Director:
set OK = baActivateWindow( baWinHandle() )

Authorware:
OK := baActivateWindow( baWinHandle() )



荣誉版主

职务:普通成员
等级:1
金币:0.0
发贴:71
注册:2000/9/29 15:38:25
#22003/3/14 14:36:53
其实OK不OK并不重要,OK这个只是用来测试后面的Active函数是否调用成功的返回值,重要的是那个WinHandle。

那么怎么得到那个Winhandle呢?

其实Winhandle是个整数,我们为了得到某个窗口的Winhandle,我们需要用到Buddy的另外一个函数:

baFindWindow( Class, Title )


我们假设你用Open “calc”曾经打开了“计算器窗口”,那么在中文windows下面这个计算器窗口的Title应该是“计算器”,如果你用open ”notepad“打开了计事本窗口,那么计事本窗口默认的Title是:”未定标题 - 计事本“,因此我们为了得到计算器窗口的Handle可以这么写:
myHandle = baFindWindow( "","计算器" )


我们为了得到计事本窗口的Handle可以这么写:
myHandle = baFindWindow( "" , "未定标题 - 计事本" )


然后你就可以用
OK = baActivateWindow( myHandle )

来激活相应handle的窗口了。

不知道我有没有讲明白?

Enjoy it!
Good Luck!

:D :D

编辑历史:[这消息被OpenGL编辑过(编辑时间2003-03-14 14:38:16)]


灰色幽灵

职务:普通成员
等级:1
金币:0.0
发贴:114
注册:2001/10/11 10:07:05
#32003/3/14 15:15:19
十分感谢,我去试试的.OPGL,这个名字有意思不知道你是否也对W3D感兴趣?

编辑历史:[这消息被灰色幽灵编辑过(编辑时间2003-03-14 15:17:11)]