Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共12 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:遇到两个实现上的问题

1楼
Marcus 发表于:2009/10/11 11:45:04
 想通过VBS实现WINDOWS API的两个功能,目前全部失败。

1. Sleep(100),实现线程暂时挂起。根据网上搜索的经验set   WshShell  =  CreateObject("WScript.Shell"),返回424, 缺少对象"Wscript'。请问金字塔用什么方法可以实现这个功能?

2. 用SendMessage和PostMessage向一个句柄发送关闭指令,即call Application.SendMessage(hwnd, WM_CLOSE, 0, 0), 返回 450, 错误的参数个数或无效的参数属性值: 'Application.SendMessage'。没有找到文档中的相关范例,不知道该怎么修改才能通过。用这两个函数的终极目的是向第三方进程发送带文本参数的指令,希望能够方便地实现。

初学VBS,发现金字塔的这个二次开发平台潜力十分强大,目前的问题就是不熟悉。
[此贴子已经被作者于2009-10-11 11:45:56编辑过]
2楼
admin 发表于:2009/10/11 12:09:46

目前你遇到的问题金字塔都还暂时没法解决,因为VBS是不能像VB那样直接调用WINDOWS的API。

但是我们可以日后的升级版中加上你要求的函数和功能。你是否方便将金字塔目前你认为缺少的函数做一下列表说明呢?这样我们会在下个升级版中及时支持

3楼
Marcus 发表于:2009/10/11 15:02:33
 目前需求优先级比较高的:
VOID      Sleep(DWORD)  //只需要暂时挂起正在运行的宏,不影响其他金字塔线程
LRESULT SendMessage(HWND, UINT, WPARAM, LPARAM)
LRESULT PostMessage(HWND, UINT, WPARAM, LPARAM)
HWND     FindWindow(LPCTSTR, LPCTSTR)

需求优先级比较低的
HWND FindWindowEx(HWND, HWND, LPCTSTR, LPCTSTR)
HWND GetWindow(HWND, UINT)
HWND GetWindowText(HWND, LPSTR, int)

4楼
admin 发表于:2009/10/11 16:50:18

除了SLEEP函数外,其他都可以加进去。

另外,金字塔的VBS语句并没有直接支持线程的东西,SLEEP函数你具体有何用途?

5楼
Marcus 发表于:2009/10/11 18:09:46
Sleep是在SendMessage后给一个延时再操作下一步,确保第三方进程出现预想的结果。
有些时候不是立即就能得到反馈结果,这样做的目的是提高操作成功率。
6楼
admin 发表于:2009/10/11 18:47:12

但是由于金字塔的VBS系统是不支持线程的,所以如果使用了SLEEP语句,那么会导致整个金字塔主程序都挂起来不能操作了

7楼
Marcus 发表于:2009/10/12 9:47:21
 这个正是我所担心的,那就暂时放弃Sleep的需求。
8楼
admin 发表于:2009/10/12 9:52:28
加上也没事,你只要控制好时间就行了,比如SLEEP(1000)表示延时1秒,这样对操作影响不大
9楼
admin 发表于:2009/10/12 9:55:37

http://blog.163.com/raubin@126/blog/static/710419882009089373244/

这个帖子能解决VBS使用WIN API的问题

10楼
Marcus 发表于:2009/11/3 23:12:04
上周末抽一点小空试验了一下,还是没成功。
由于看不到最新的说明文档,依旧一头雾水。

能否给个样本代码说明如何调用下面这三个函数?
HWND     FindWindow(LPCTSTR, LPCTSTR)
HWND     GetWindow(HWND, UINT)
LRESULT SendMessage(HWND, UINT, WPARAM, LPARAM)
共12 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in .23438 s, 2 queries.