欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 遇到两个实现上的问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有12944人关注过本帖树形打印复制链接

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

帅哥哟,离线,有人找我吗?
Marcus
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:216 积分:1283 威望:0 精华:0 注册:2009/8/30 14:14:47
遇到两个实现上的问题  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Marcus
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:216 积分:1283 威望:0 精华:0 注册:2009/8/30 14:14:47
  发帖心情 Post By: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)


 回到顶部
帅哥哟,离线,有人找我吗?
Marcus
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:216 积分:1283 威望:0 精华:0 注册:2009/8/30 14:14:47
  发帖心情 Post By:2009/10/11 18:09:46 [显示全部帖子]

Sleep是在SendMessage后给一个延时再操作下一步,确保第三方进程出现预想的结果。
有些时候不是立即就能得到反馈结果,这样做的目的是提高操作成功率。

 回到顶部
帅哥哟,离线,有人找我吗?
Marcus
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:216 积分:1283 威望:0 精华:0 注册:2009/8/30 14:14:47
  发帖心情 Post By:2009/10/12 9:47:21 [显示全部帖子]

 这个正是我所担心的,那就暂时放弃Sleep的需求。

 回到顶部
帅哥哟,离线,有人找我吗?
Marcus
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:216 积分:1283 威望:0 精华:0 注册:2009/8/30 14:14:47
  发帖心情 Post By:2009/11/3 23:12:04 [显示全部帖子]

上周末抽一点小空试验了一下,还是没成功。
由于看不到最新的说明文档,依旧一头雾水。

能否给个样本代码说明如何调用下面这三个函数?
HWND     FindWindow(LPCTSTR, LPCTSTR)
HWND     GetWindow(HWND, UINT)
LRESULT SendMessage(HWND, UINT, WPARAM, LPARAM)

 回到顶部
帅哥哟,离线,有人找我吗?
Marcus
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:216 积分:1283 威望:0 精华:0 注册:2009/8/30 14:14:47
  发帖心情 Post By:2009/11/4 23:26:26 [显示全部帖子]

谢谢!

下载1.91升级包后跑通了
    GetWindow
    SetWindowTextA
    SendMessageA
    FindWindowA
FindWindowA一开始不成功,返回值是0,后来把第一个参数换成vbNullString就OK了。

 回到顶部