如何使用VBScript读取内存值?

时间:2010-12-21 03:39:28

标签: winapi memory vbscript qtp

我想使用VBScript直接从另一个正在运行的应用程序的内存中读取值 我似乎无法找到有关在VBScript中使用ReadProcessMemory()的信息。

我打算在Quick Test Pro中使用它来对需要测试的应用程序进行屏幕抓取。 此应用程序不使用任何标准控件,使用QTP的OCR功能无法为我们提供可靠的结果。

我们目前使用AutoIT编写的代码直接从内存中读取此应用程序的值并将其转换为ASCII。但是我们希望消除对它的依赖,并且在QTP中使用VBScript将是理想的。

那么有人能告诉我如何使用VBScript从内存中的可执行文件中读取值吗?

1 个答案:

答案 0 :(得分:4)

你不能直接在VBScript中这样做。正如Josh Einstein上面的评论所提到的,直接从VBScript调用本机Windows API函数是不可能的。这种情况有两个主要原因。首先,对于用这种脚本语言编写的代码来说,它会给直接调用本机代码带来明显的安全风险。第二,VBScript只有一种数据类型(Variant),它不能与大多数Windows API函数的返回值一起正常工作。

相反,您必须在ActiveX DLL中包含所需的本机API函数(COM自动化对象),,然后从VBScript中调用该库中的函数。< / strong>包装器DLL将专门设计用于VBScript互操作性,并将处理任何必要的数据类型转换,仅显示Variant类型并包含所有必需(或可能必需!)的错误处理例程。使用VB 6是最快捷,最简单的方法,甚至不需要你学习一门新语言,但如果你在那里舒服,你也可以用C ++来做。