QTP呼叫外部應用程式的4種方法

TIB發表於2010-03-18

 

方法 1. 使用 "InvokeApplication" 命令呼叫可執行應用程式

 

Note: In most situations, you should use a SystemUtil.Run statement to run applications or to open files in their default application.  The InvokeApplication statement is supported primarily for backward compatibility.

 

例子:

InvokeApplication "E:/Program Files/Internet Explorer/IEXPLORE.EXE"

 

 

方法 2. 使用 "SystemUtil.Run" 命令開啟一個檔案或應用程式

When specifying a non-executable file, the file opens in the associated application.

 

Note: A SystemUtil.Run statement is automatically added to your test when you run an application from the Start menu or the Run dialog box while recording a test.

 

Tip: You can also use this method to perform operations on the specified file, similar to the usage of the Windows ShellExecute command.

 

例子:

SystemUtil.Run “IEXPLORE.EXE”

 

注意:SystemUtil.Run InvokeApplication的區別在於是否需要指定完整路徑

例:

Open a Text File in the Default Text Application (Notepad)

 

Sub CloseDescendentProcesses_Example()

'The following example uses the Run method to open a file named type.txt

'in the default text application (Notepad). It then types "happy days",

'saves the file using shortcut keys, and then closes the application.

 

SystemUtil.Run "C:/type.txt", "", "", ""

Window("Text:=type.txt - Notepad").Type "happy days"

Window("Text:=type.txt - Notepad").Type micAltDwn & "F" & micAltUp

Window("Text:=type.txt - Notepad").Type micLShiftDwn & "S" & micLShiftUp

Window("Text:=type.txt - Notepad").Close

End Sub

 

 

方法 3. 使用ExecuteFile 函式執行外部定義的函式

If you decide not to associate a function library (any VBScript file) with a test, but do want to be able to call its functions, subroutines, and so forth from an action in your test or from another function library, you can do so by inserting an ExecuteFile statement in your action.

 

When you run your test, the ExecuteFile statement executes all global code in the function library making all definitions in the file available from the global scope of the action's script.

 

注意:用ExecuteFile語句執行的函式檔案是不能被QTP除錯進去的

You cannot debug a file that is called using an ExecuteFile statement, or any of the functions contained in the file. In addition, when debugging a test that contains an ExecuteFile statement, the execution marker may not be correctly displayed.

 

To execute an externally-defined function:

1. Create a VBScript file using standard VBScript syntax. For more information, see the Microsoft VBScript Language Reference (Help > QuickTest Professional Help > VBScript Reference > VBScript).

2. Store the file in any folder that you can access from the computer running your test.

3. Add an ExecuteFile statement to an action in your test using the following syntax:

ExecuteFile FileName

where FileName is the absolute or relative path of your VBScript file.

4. Use the functions, subroutines, and so forth, from the specified VBScript file as necessary in your action.

 

 

方法 4. 使用 "WshShell.Exec" 方法

- Runs an application in a child command-shell, providing access to the StdIn/StdOut/StdErr streams.

 

Remarks

The Exec method returns a WshScriptExec object, which provides status and error information about a script run with Exec along with access to the StdIn, StdOut, and StdErr channels. The Exec method allows the execution of command line applications only. The Exec method cannot be used to run remote scripts. Do not confuse the Exec method with the Execute method (of the WshRemote object).

 

例子:

Dim WshShell, oExec

Set WshShell = CreateObject("WScript.Shell")

 

Set oExec = WshShell.Exec("calc")

 

Do While oExec.Status = 0

     WScript.Sleep 100

Loop

 

WScript.Echo oExec.Status

 

 

參考:

http://www.qtp10.com/2009/11/call-external-file-and-applications-in.html

 

相關文章