LOTUSSCRIPT 言語
DoCalc サブルーチンは、Shell ステートメントを使用して Windows の電卓を起動します。Shell ステートメントは電卓のタスク ID (モジュールハンドルとも呼ばれます) を返します。While ループ内で、サブルーチンは Windows 3.1 の API 関数 GetModuleUsage を呼び出し、この関数はモジュールの参照回数 (現在実行されている電卓のインスタンスの数) を返します。Yield ステートメントは制御を電卓に移します。ユーザーが電卓を閉じると、GetModuleUsage はゼロの参照カウントを返します。While ループが終了し、サブルーチンは適切なメッセージを表示します。
While ループを削除すると (試してみてください)、電卓を実行し始めた直後にメッセージボックスが表示されます。つまり、スクリプトは電卓に制御を移さずに実行を継続します。
' Declare the Windows 3.1 API function at the module level. Declare Function GetModuleUsage Lib "Kernel" _ (ByVal taskID As Integer) As Integer
Sub DoCalc Dim taskID As Integer ' Start the Windows calculator, returning its task ID. taskID% = Shell("calc.exe", 1) ' As long as the module is still running, yield. Do While GetModuleUsage(taskID%) > 0 Yield Loop ' When the user closes the calculator, continue. MessageBox "Calculations done" End Sub
DoCalc ' Call the DoCalc sub.
関連項目