IPCOCXは、以下に示すOSで動作確認を行っております。
Microsoft Windows 95、Microsoft Windows 98、
Microsoft WindowsNT 4.0、Microsoft Windows 2000
Microsoft Windows XP、Microsoft Windows 2003
IPCOCXをご使用いただくには、以下のいずれかのソフトウェアが必要です。
Microsoft Visual Basic Ver 5.0
Microsoft Visual Basic Ver 6.0
Microsoft Office 2000 (Access、Excel)
IPCOCXは、Microsoft Visual C++ Ver5.0で作成しています。サンプルは、Microsoft Visual
Basic Ver 5.0で作成しています。 ※ 本製品は日本語環境のみの対応となります。 |
画面にしたがって、インストールを進めて下さい。
1.インストールを始めます。「次へ」をクリックして下さい。
3.インストール先のフォルダを指定します。初期設定でよろしければ「次へ」をクリックして下さい。
別のフォルダを指定したい場合は「参照」をクリックし、フォルダを指定して下さい。
6.プログラムのコピーを開始します。「次へ」をクリックして下さい。
以下のメッセージボックスが表示され、ライセンスがレジストリに登録されます。
あらかじめ電子メールで通知しているライセンス情報を利用してライセンスを登録する等、レジストリファイルを利用しない場合は、VisualBasic起動後に新規プロジェクトを選択し以下のデザイン画面を開きます。 |
ツールバーの「プロジェクト」から「コンポーネント」を選択し、「コンポーネント」画面を開きます。次にコントロールタブの一覧からIPCOCXを選択して「OK」をクリックすると、OCXがツールボックスに追加され、アイコンが表示されます。 |
ツールボックスに追加されたOCXを選択し、フォームにアイコンを貼り付けると、以下の「WILL LICENSE REGISTRATION」画面が表示されます。 ここで、ユーザー名、シリアル番号、キーコードをそれぞれ入力してライセンス登録を行います。 |
既にトライアルライセンスが登録されている場合には、デザイン画面にあるOCXのプロパティで「バージョン情報」をクリックして下さい。 |
※ライセンスが入力できない!?
※登録したライセンスを認識しない!?
※トライアルライセンスで作成したアプリケーションはどうする!?
|
「WILLWALE Components」の「サンプル」を起動すると「WILLWARE Components サンプル」画面が表示されます。 サンプルの起動、またはそれぞれのソースを開くことができます。 但し、ソースを開くにはライセンスが必要です。トライアルライセンス又は、正規ライセンスを登録してご利用下さい。 (ライセンスの登録方法は前項の「ライセンスの登録」をご覧下さい。) |
弊社ホームページの「サポート」のページで、キーワードを入力してFAQを検索できます。
休業日などサポートの対応が遅れる場合もありますので、まずはこちらをご確認下さい。
製品のバージョンアップは、すべて無償です。
バーションアップの情報は、弊社ホームページの新着情報で通知し、
各商品のページの更新履歴で更新内容を掲示致します。
最新バージョンのプログラムは、弊社ホームページ(http://www.will-ltd.co.jp/)のダウンロードのページよりダウンロードすることが出来ます。 ダウンロードするファイルは、以下のバージョンアップの目的により異なりますのでご注意下さい。 ●WILLWARE Components(全製品用)セットアップキットを利用してバージョンアップ
●各コンポーネント毎のセットアップキットを利用してバージョンアップ
|
各セットアップキットを利用してバーションアップをする前に、以下のことにご注意下さい。
|
・IPC.OCX
・MFC42.DLL (Ver 4.21.7022)
・MFC42LOC.DLL (Ver 4.21.7022)
・MSVCRT.DLL (Ver 5.00.7022)
・OLEPRO32.DLL (Ver 5.0.4118)
・OLEAUT32.DLL (Ver 2.20.4118)
※セットアップウィザードを使用する場合
IPCOCXをインストールすると、自動的にOCXの依存ファイルが以下のディレクトリにインストールされます。
C:\Windows\system (Windows95, Windows98の場合)
C:\WINNT\system32 (WindowsNT4.0, Windows2000の場合)
C:\Windows\system32 (WindowsXPの場合)
セットアップウィザードを実行すると自動的にアプリケーション配布時に必要なOCX
(内部で利用しているOCX)と、DLLファイルがSetup.lstファイルに追加されます。
ここでは、IPCOCXの使い方の概要を述べます。
メソッド、プロパティ、イベントの具体的な内容はそれぞれの項で説明していますので、適宜参照して下さい。
IPCOCXのプロセスの起動および起動したプロセスの終了監視機能を使うと以下の機能を実現できます。
また、起動するプログラムの表示位置の指定や、非表示での起動ができるので、複数のプログラムをあたかも1つのプログラムであるかのように見せることもできます。 |
IPCOCXでプロセスの起動を行なうには以下の2つの方法があります。 どちらのメソッドもプロセスの起動をするとともに、プロセスの終了を検出するための専用スレッド(プロセス監視スレッド)を生成することができます。
- ProcessRunメソッドを使用
- ProcessExecメソッドを使用
メソッドを実行しているスレッドと、プロセス監視スレッドは同時に平行して動作しますので、メソッドはブロックせずに次の処理を行なうことができます。
プロセス監視スレッドが開始すると、ProcessOpenedイベントが発生します。
プロセスの終了を検出するには、ProcessOpenedイベント内またはそれ以降にProcessWaitメソッドを呼び出します。
プロセスの終了の検出を行う直前にProcessWaitingイベントを発生します。
プロセスの終了を検出すると、ProcessDoneイベントが発生します。
プロセス監視スレッドを終了するには、ProcessDoneイベントでProcessCloseメソッドを呼び出します。
※プロセスの起動だけを行い、終了の検出を行なわない場合は、ProcessOpenedイベントで、ProcessCloseメソッドを呼び出します。この呼び出しでプロセス監視スレッドは終了します。
プロセス監視スレッドの待ち状態(WAIT状態)を中断する(IDLE状態にする)場合は、ProcessAbortメソッドを呼び出します。このメソッドが成功すると、ProcessAbortedイベントが発生し、Reason変数に2が格納されます(Abortメソッドによる中断)。
中断後再度終了の検出を行なうには、ProcessWaitメソッドを再度呼び出します。
ProcessWaitメソッドはTimeoutプロパティを参照します。
Timeoutが-1に設定されている場合、プロセス監視スレッドがプロセスの終了を検出するまでイベントは発生しません。
-1以外に設定されている場合は、指定された時間だけ監視を行ない、その時間内にプロセスの終了が検出されない場合は、ProcessAbortedイベントを発生します。このとき、Reason変数に1が格納されます(タイムアウトによる中断)。
プロセス監視スレッドは、コントロールが破棄される場合を除き、自動的には終了しません。
終了するには、ProcessCloseメソッドを呼び出します。
ProcessCloseメソッドを呼び出すとProcessClosedイベントが発生します。
ProcessCloseメソッドは、いつでも呼び出すことができます。
排他制御は、1つ以上の資源を複数のプロセスで共有する際に、同時に利用できるプロセスの数を制限するための機能です。
排他制御は椅子取りゲームに似ています。1つの椅子を取り合うときはミューテクス、複数の椅子を取り合うときはセマフォー、というように理解するとよいでしょう。 |
IPCOCXでミューテクスを利用するには、まず、MutexOpenメソッドでミューテクスの利用を宣言します。
この時ミューテクスの状態監視のためのスレッド(ミューテクス状態監視スレッド)が生成され、それと同時にMutexOpenedイベントが発生します。
ミューテクスのアクセス権を確保(LOCK)するにはMutexLockメソッドを呼び出します。
ミューテクス状態監視スレッドはアクセス権の確保を行なう直前に、MutexLockingイベントを発生します。
その後、アクセス権が確保(LOCK)されるまでミューテクス状態監視スレッドは停止しますが、MutexLockメソッドを呼び出したスレッドは実行を続けることができます。
この時はまだ、アクセス権は確保(LOCK)はされていないので、資源へのアクセスは控えてください。
アクセス権が確保(LOCK)されると、MutexLockedイベントが発生します。
このイベントを合図に資源へのアクセスを開始して下さい。
資源へのアクセスが終わったら、MutexUnlockメソッドを呼び出してアクセス権の解放を行なってください。
正常に解放されると、MutexUnlockedイベントが発生します。
アクセス権が確保(LOCK)されるまでミューテクス状態監視スレッドは停止していますが、この状態をMutexAbortメソッドを用いてキャンセルすることができます。キャンセルに成功すると、MutexAbortedイベントが発生して、MutexOpenedイベントが発生した直後の状態に戻ります。このとき、MutexAbortedイベントのReason変数に2が格納されます(Abortメソッドによる中断)。
MutexLockメソッドは、Timeoutプロパティを参照します。
Timeoutが-1に設定されている場合は、アクセス権が確保(LOCK)できるまでミューテクス状態監視スレッドは停止します。
-1以外に設定されている場合は、指定された時間だけ停止し、その時間内にアクセス権が確保(LOCK)できないない場合は、停止状態を解除して、MutexAbortedイベントを発生させます。このとき、Reason変数に1が格納されます(タイムアウトによる中断)。
ミューテクス状態監視スレッドはコントロールが破棄される場合を除き、自動的には終了しません。終了するには、MutexCloseメソッドを呼び出します。MutexCloseメソッドを呼び出すとMutexClosedイベントが発生します。MutexCloseメソッドは、いつでも呼び出すことができます。
IPCOCXでセマフォーを利用するには、まず、SemaphoreOpenメソッドでセマフォーの利用を宣言します。この時セマフォーの状態監視のためのスレッド(セマフォー状態監視スレッド)が生成され、それと同時にSemaphoreOpenedイベントが発生します。
セマフォーのアクセス権を得るにはSemaphoreCaptureメソッドを呼び出します。セマフォー状態監視スレッドがアクセス権の確保(CAPTURE)を行なう直前に、SemaphoreCapturingイベントを発生します。
その後、アクセス権が確保(CAPTURE)されるまでセマフォー状態監視スレッドは停止しますが、SemaphoreCaptureメソッドを呼び出したスレッドは実行を続けることができます。
この時はまだ、アクセス権は確保(CAPTURE)はされていないので、資源へのアクセスは控えてください。
アクセス権が確保(CAPTURE)されると、SemaphoreCapturedイベントが発生します。このイベントを合図に資源へのアクセスを開始して下さい。
資源へのアクセスが終わったなら、SemaphoreReleaseメソッドを呼び出してアクセス権の解放を行なってください。正常に解放されると、SemaphoreReleasedイベントが発生します。
アクセス権が確保(CAPTURE)されるまでセマフォー状態監視スレッドは停止していますが、この状態をSemaphoreAbortメソッドを用いてキャンセルすることができます。
キャンセルに成功すると、SemaphoreAbortedイベントが発生して、SemaphoreOpenedイベントが発生した直後の状態に戻ります。このとき、SemaphoreAbortedイベントのReason変数に2が格納されます(Abortメソッドによる中断)。
SemaphoreCaptureメソッドは、Timeoutプロパティを参照します。
Timeoutが-1に設定されている場合は、アクセス権が確保(CAPTURE)できるまでセマフォー状態監視スレッドは停止します。-1以外に設定されている場合は、指定された時間だけ停止し、その時間内にアクセス権が確保(CAPTURE)できないない場合は、停止状態を解除して、SemaphoreAbortedイベントを発生させます。このとき、Reason変数に1が格納されます(タイムアウトによる中断)。
セマフォー状態監視スレッドはコントロールが破棄される場合を除き、自動的には終了しません。終了するには、SemaphoreCloseメソッドを呼び出します。SemaphoreCloseメソッドを呼び出すとSemaphoreClosedイベントが発生します。SemaphoreCloseメソッドは、いつでも呼び出すことができます。
上記のように、確保したアクセス権をそのオブジェクトが必ず解放する方法を同期的使用方法と呼びます。
同期的使用方法を行なうには、SemaphoreSyncModeプロパティをTrueにします。
一方、SemaphoreSyncModeプロパティをFalseにすると、非同期的使用方法になります。
非同期的使用方法にすると、アクセス権を確保するオブジェクトとアクセス権を提供するオブジェクトが分離され、アクセス権を確保するオブジェクトはSemaphoreReleaseメソッドを使うことができなくなります。
アクセス権を提供するオブジェクトは、SemaphoreIncreaseメソッドを使って、アクセス権を与えるプロセスの数を任意に増加させることができます。
複数のプロセスで協調して処理を行なうには、処理の開始通知や完了通知などの通知制御と、相手の完了を待って処理を開始する待ち合わせ制御が必要になります。 コンディションを用いることでこれらを簡単に実現できます。 (セマフォーの非同期的使用法を用いても実現可能です) |
IPCOCXは、Eventと呼ばれるWindowsの機構を用いて、コンディションを実現します(VBにはイベントという言葉が既に用いられているため、Eventに対する機能をコンディションと呼ぶことにしました)。
コンディションを理解するには、門(ゲート)を想像してください。
門には、閉じている状態と開いている状態があります。門が開いていると通行でき、門が閉じていると門が開くまで待たなければなりません。
コンディションでは、門が開いている状態をOn、閉じている状態をOffと呼びます。Onになると、(VBの)イベントが発生するので、門の状態が変化したことを知ることができます。
コンディションでは、Onにすること、Offにすること、そして、一旦Onにして、すぐにOffにすることができます。
IPCOCXでコンディションを利用するには、まず、ConditionOpenメソッドでコンディションの利用を宣言します。この時コンディションの状態監視のためのスレッド(コンディション状態監視スレッド)が生成され、それと同時にConditionOpenedイベントが発生します。
コンディションがOnの状態になるのを検出するためにConditionFindメソッドを呼び出します。検出を行なう直前に、ConditionWaitingイベントが発生します。
コンディションがOnの状態を検出すると、ConditionFoundイベントが発生します。
コンディション状態監視スレッドの監視状態(WAIT状態)を中断する(IDLE状態にする)にはConditionAbortメソッドを呼び出します。中断に成功すると、ConditionAbortedイベントが発生して、ConditionOpenedイベントが発生した直後の状態に戻ります。このとき、ConditionAbortedイベントのReason変数に2が格納されます(Abortメソッドによる中断)。
中断後、監視を再開するには、ConditionFindメソッドを再度呼び出します。
ConditionFindメソッドは、Timeoutプロパティを参照します。
Timeoutが-1に設定されている場合は、コンディションがOnである状態が検出されるまで監視を続けます。
-1以外に設定されている場合は、指定された時間だけ監視し、その時間内にコンディションがOnである状態が検出されない場合、監視を中断して、ConditionAbortedイベントを発生させます。このとき、Reason変数に1が格納されます(タイムアウトによる中断)。
コンディション状態監視スレッドは、コントロールが破棄される場合を除き、自動的には終了しません。終了するには、ConditionCloseメソッドを呼び出します。ConditionCloseメソッドを呼び出すとConditionClosedイベントが発生します。ConditionCloseメソッドは、いつでも呼び出すことができます。
コンディションの状態を変化させるには、ConditionOnメソッド、ConditionOffメソッド、ConditionOnAndOffメソッドを使用します。ConditionOnメソッドはコンディションの状態をOnにします。ConditionOffメソッドはコンディションの状態をOffにします。
ConditionOnAndOffメソッドはコンディションを一瞬Onにした後すぐにOffにします。
IPCOCXのメモリ共有は非常に便利でかつ安全です。 メモリへの書き込みおよび読み込みは、内部でMutexを用いて排他的に行われます。 メモリへの書き込みおよび読み出しは、VBの変数をそのまま渡すことができるので、ローカルメモリにアクセスする手軽さです。 IPCOCXではメモリ共有を利用するために4つのメソッドが用意されています。
すでに共有メモリが作成されている場合、初期値は無視されます。 IPCOCXでは同じ名称の共有メモリには、初期値と同じ型のデータしか保存できません。 SharedMemoryWriteメソッドは与えれられた変数を、初期値と同じ型に変換して保存します。変換できない場合はエラーになります。 SharedMemoryReadメソッドは初期値と同じ型で値を返します。 IPCOCXの共有メモリに保存できるのは、文字列の配列およびバリアントの配列、オブジェクト、Empty値以外のすべての型およびその1次元配列です。 |
Dim X As Integer,Y As Interger
IPC1.SharedMemoryOpen "NAME1", 1
X = IPC1.SharedMemoryRead
IPC1.SharedMemoryWrite 2
Y = IPC1.SharedMemoryRead
IPC1.SharedMemoryClose
Debug.Print X,Y
共有メモリに格納した配列を取り出すときはバリアント変数で受けてください。
Dim D() As Double, v As Variant
ReDim D(1)
D(0) = 1
D(1) = 2
IPC1.SharedMemoryOpen "NAME2", D
v = IPC1.SharedMemoryRead
IPC1.SharedMemoryClose
Debug.Print v(0), v(1)バリアントで受けることに関しては、データが期待する型かどうか不明であることに不安を感じるかもしれませんが、SharedMemoryOpenメソッドで型と大きさのチェックを行なっていますので、型が合わないという心配はありません。
文字列など可変のデータを取り扱う場合、SharedMemoryOpenメソッドで確保バイト数を指定してください。これを指定しないと初期値を格納するのに必要な大きさの共有メモリしか確保しません。
Dim X As String,Y As String
IPC1.SharedMemoryOpen "NAME3", "",100
X = "TEST"
IPC1.SharedMemoryWrite X
Y = IPC1.SharedMemoryRead
IPC1.SharedMemoryClose
Debug.Print X,YSharedMemoryOpenメソッドを用いて、既存の共有メモリを使用する際、確保バイト数が一致しないとエラーとなります。共有を行なうすべてのプロセスでSharedMemoryOpenメソッドの指定は同じになるようにしてください。
ディレクトリ変更の検出は、文字どおりディレクトリおよびディレクトリに含まれるファイルに
変更があった場合に、変更を検出するための機能です。
IPCOCXでディレクトリ変更の検出機能を利用するには、まず、NotificationOpenメソッドでディレクトリ変更検出の利用を宣言します。この時ディレクトリ変更の監視のためのスレッド(ディレクトリ変更監視スレッド)が生成され、それと同時にNotificationOpenedイベントが発生します。
ディレクトリ変更の検出を行うためにNotificationFindメソッドを呼び出します。ディレクトリ変更の検出を行う前に、NotificationWaitingイベントが発生します。
監視しているディレクトリに変化があると、NotificationFoundイベントが発生します。
ディレクトリ変更監視スレッドの待ち状態(WAIT状態)を中断する(IDLE状態にする)にはNotificationAbortメソッドを呼び出します。
中断に成功すると、NotificationAbortedイベントが発生して、NotificationOpenedイベントが発生した直後の状態に戻ります。このとき、NotificationAbortedイベントのReason変数に2が格納されます(Abortメソッドによる中断)。
中断後、監視を再開するには、NotificationFindを再度呼び出します。
NotificationFindメソッドは、Timeoutプロパティを参照します。
Timeoutが-1に設定されている場合は、ディレクトリに変化があるまで監視を続けます。
-1以外に設定されている場合は、指定された時間だけ監視し、その時間内にディレクトリに変化がなければ、監視を中断して、NotificationAbortedイベントを発生させます。このとき、Reason変数に1が格納されます(タイムアウトによる中断)。
ディレクトリ変更監視スレッドはコントロールが破棄される場合を除き、自動的には終了しません。終了するには、NotificationCloseメソッドを呼び出します。NotificationCloseメソッドを呼び出すとNotificationClosedイベントが発生します。NotificationCloseメソッドは、いつでも呼び出すことができます。
セマフォーのアクセス権の解放を義務付けるかどうかを設定します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
(値) | (状 態) |
True | 初期値。解放は必要 |
False | 解放は不要 |
このプロパティがTrueの場合、SemaphoreCaptureメソッドで確保したセマフォーへのアクセス権はSemaphoreReleaseメソッドを用いて解放します。解放しないまま、SemaphoreCaptureメソッドを呼び出すことはできません。 |
共有メモリのロック方法を指定します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
(値) | (状 態) |
ipcUseMutexLock =0 | 共有メモリへの読み書きにMutexLockを用いる(初期値) |
IpcIgnoreTimeout =1 | 共有メモリへの読み書きにMutexLockを用いるが、エラーやタイムアウトを無視して読み書きする |
ipcNoMutexLock=2 | 共有メモリへの読み書きにMutexLockを用いない |
共有メモリで排他制御を行なわない場合は、ipcNoMutexLockを設定します。 |
共有メモリで排他制御を行なう際のタイムアウト時間をミリ秒単位で設定します。
初期値は、10,000(10秒)。
タイムアウトをするとトラップ可能なエラーが発生します。
-1を設定するとタイムアウトしなくなります。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
(値) | (状 態) |
-1 | タイムアウトしない。(設定しないでください) |
0 | 待たない。 |
10,000 | デフォルトタイムアウト値。(推奨) |
正 | タイムアウト値(ミリ秒)。 |
上記以外 | 不定。 |
このプロパティを参照するメソッドは、SharedMemoryOpen, SharedMemoryRead, SharedMemoryWrite の3つです。 |
メソッド実行時のタイムアウト時間をミリ秒単位で設定します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
(値) | (状 態) |
-1 | 初期値。タイムアウトしない。 |
0 | 待たない。 |
正 | タイムアウト値。 |
上記以外 | 不定。 |
このプロパティは、ProcessWait,MutexLock,SemaphoreCapture, NotificationFindConditionFindの各メソッドで参照されます。 Timeoutプロパティを-1以外に設定するとタイムアウトイベントが発生します。 タイムアウトイベントは、起動メソッドによって名称が異なります。 |
IPCOCXのライセンス情報です。バージョン情報画面からいつでもライセンスの変更が可能です。 トライアルライセンスから正規ライセンスに切り替えた場合、このプロパティでライセンス情報を確認してください。 |
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
IPCOCXのバージョン情報です。
アプリケーション作成者は、アプリケーションプログラムまたはマニュアルに、
ここで表示される文字列を表記するようにしてください。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
プログラムを実行する際のカレントディレクトリを指定します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
(値) | (状 態) |
"" | 初期値。現在のカレントディレクトリのまま。 |
上記以外 | 指定したディレクトリをカレントディレクトリにして起動する。 |
ProcessRunメソッド,ProcessExecメソッドを使うときに参照されます。 正しいディレクトリを指定しないと、これらのメソッドを呼び出した時点でエラーになります。 |
プログラムを実行する際の表示方法を指定します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
(値) | (説 明) | |
IpcHIDE | =0 | 非表示 |
ipcSHOWNORMAL | =1 | 通常表示 |
IpcSHOWMINIMIZED | =2 | アイコン表示 |
ipcSHOWMAXIMIZED | =3 | 最大表示 |
IpcSHOWNOACTIVATE | =4 | 非アクティブ通常表示 |
ipcSHOW | =5 | 通常表示 |
IpcMINIMIZE | =6 | 非アクティブアイコン表示 |
ipcSHOWMINNOACTIVE | =7 | 非アクティブアイコン表示 |
IpcSHOWNA | =8 | 非アクティブアイコン表示 |
IpcRESTORE | =9 | 通常表示 |
ProcessRunメソッド,ProcessExecメソッドを使うときに参照されます。 値は、0から9までの数値を指定することも可能です。 異なる値で同じ動作をする場合があります。 この値は初期値としてアプリケーションで使われるもので、この指示に従わない場合があります。 |
現在実行中の待ち状態を示します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
(値) | (状 態) | |
ipcInit | =0 | 指示可能。 |
ipcOpen | =1 | (*1)のメソッドが呼び出された。 |
ipcOpened | =2 | スレッドが開始した。(*2)のイベントが発生。 |
ipcDo | =3 | (*3)のメソッドが呼び出された。 |
ipcWaiting | =4 | 監視する直前。(*4)のイベントが発生。 |
ipcDone | =5 | 検出した。(*5)のイベントが発生。 |
ipcUnDo | =6 | (*6)のメソッドが呼び出された。 |
ipcAbort | =7 | (*7)のメソッドが呼び出された。 |
ipcClose | =8 | (*8)のメソッドが呼び出された。 |
*1: ProcessRun, ProcessExec, MutexOpen, SemaphoreOpen, ConditionOpen, NotificationOpen *2: ProcessOpened, MutexOpened, SemaphoreOpened, ConditionOpened, NotificationOpened *3: ProcessWait, MutexLock, SemaphoreCapture, ConditionFind, NotificationFind *4: ProcessWaiting, MutexLocking, SemaphoreCapturing, ConditionWaiting, NotificationWaiting *5: ProcessDone, MutexLocked, SemaphoreCaptured, ConditionFound, NotificationFound *6: MutexUnlock, SemaphoreRelease *7: ProcessAbort, MutexAbort, SemaphoreAbort, ConditionAbort, NotificationAbort *8: ProcessClose, MutexClose, SemaphoreClose, ConditionClose, NotificationClose
ProcessRunメソッド、ProcessExecメソッド、MutexOpenメソッド、SemaphoreOpenメソッド、ConditionOpenメソッド、NotificationOpenメソッドを呼び出すと、状態の変化を検出するために専用のスレッドを作成してそのスレッド上で待機します。 このスレッドが存在する間は、これらのメソッドを平行して呼び出すことはできないようになっています。 Statメソッドはスレッドの状態を示します。 (メソッドが呼び出されている場合は状態が変化していることを示します) |
プロセスを起動します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
ProgramName | 実行するプログラム名 |
X | 表示開始位置X方向(オプション) |
Y | 表示開始位置Y方向(オプション) |
プロセスを起動します。起動できたら起動したプロセスの終了を待つための専用スレッド(プロセス監視スレッド)を生成しProcessOpenedイベントを発生します。 ProcessRunメソッドを実行しただけでは、プロセスの終了を検出できません。 プロセスの終了を検出するためには、ProcessOpenedイベントでProcessWaitメソッドを実行します。 |
プロセスを起動します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
ProgramName | ファイル名 |
Operation | オペレーション。デフォルトは"Open" |
ファイルに関連付けられたプロセスを起動します。起動できたら起動したプロセスの終了を待つための専用スレッド(プロセス監視スレッド)を作成しProcessOpenedイベントを発生します。ProcessExecメソッドを実行しただけでは、プロセスの終了を検出できません。 プロセスの終了を検出するためには、ProcessOpenedイベントでProcessWaitメソッドを実行します。 オペレーションは、関連付けに関わりがあります。 "open"以外に"print"や"edit"などのオペレーションがサポートされていることがあります。 |
ProcessRunメソッドまたは、ProcessExecメソッドで起動したプロセスの終了を検出します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
ProcessWaitメソッドはProcessRunメソッドまたはProcessExecメソッドで生成されたスレッドにプロセスの終了の監視を依頼します。依頼するとまず、ProcessWaitingイベントが発生します。つぎに監視を開始します。監視をしている間そのスレッドは停止しています。プロセスの終了を検出するとスレッドは再開し、ProcessDoneイベントを発生します。 |
ProcessWaitメソッドの実行をキャンセルします。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
プロセスの監視スレッドを終了します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
起動しているプロセスを強制終了させます。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
ハングアップを検出した場合に使うということを想定しています。 通常の終了には絶対使用しないでください。 ProcessKILLメソッドを使用すると、そのプロセスで確保されていた資源を解放しないまま終了することがあります。 |
ミューテクスをオープンします。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
MutexName | ミューテクスの名前 |
(R) | (戻 値) |
True | 新規にミューテクスオブジェクトを作成しました。 |
False | 既存のミューテクスオブジェクトをオープンしました。 |
MutexNameで指定された名前のミューテクスオブジェクトをオープンます。 指定された名前のミューテクスオブジェクトが無い場合は新規に作成します。 正常にオープンできると、ミューテクスの状態を変更したり監視するためのスレッド(ミューテクス状態監視スレッド)を生成します。ミューテクス状態監視スレッドが生成されると、MutexOpenedイベントが発生します。 MutexOpenメソッドだけでは、ミューテクスのアクセス権は確保されません。MutexOpenedイベントが発生した以降MutexLockメソッドを使ってミューテクスのアクセス権を確保してください。 MutexClosedイベントが発生してミューテクス状態監視スレッドが終了するまで、 このオブジェクトのMutexOpen、SemaphoreOpen、ConditionOpen、ProcessRun、ProcessExec、NotificationOpenの各メソッドを呼び出すことはできません。 |
ミューテクスのアクセス権を確保します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
MutexOpenメソッドでオープンしたミューテクスオブジェクトのアクセス権を確保します。 MutexLockメソッドは、MutexOpenメソッドで生成した監視スレッドに依頼してアクセス権の確保を行ないます。 ミューテクス状態スレッドがアクセス権の確保の監視に入る直前にMutexLockingイベントを発生します。その後、アクセス権を確保できたら、MutexLockedイベントが発生し、確保できないと、MutexAbortedイベントが発生します。 MutexAbortedイベントは、タイムアウトが発生したとき、またはMutexAbortメソッドが呼ばれたときに発生します。 確保できたかどうかを監視するのはMutexOpenメソッドで生成したスレッドで行いますので、MutexLockメソッドがブロックすることはありません。 MutexLockedイベント発生までは、資源を利用することはできませんが、ほかの処理を行なうことは可能です。 |
ミューテクスのアクセス権を解放します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
MutexOpenメソッドで生成したスレッドがアクセス権を保持していますので、このスレッドに対し、確保したアクセス権を解放するよう要請します。 解放されたなら、MutexUnockedイベントが発生します。 アクセス権の解放は、ミューテクス状態監視スレッドの終了とは違います。 MutexUnlockedイベントが発生したあとに、再度MutexLockメソッドを使ってアクセス権の確保を試みることができます。 |
ミューテクスのアクセス権の確保をあきらめます。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
MutexLockメソッドを実行しているスレッドに対し、監視を中断するよう要請します。 中断できたなら、MutexAbortedイベントを発生します。 監視の中断をしても、ミューテクス状態監視スレッドが終了するわけではありませんので、MutexAbortedイベントが発生したあとに、再度MutexLockメソッドを使ってアクセス権の確保を試みることができます。 終了させるには、MutexCloseメソッドを呼び出します。 |
ミューテクス状態監視スレッドを終了します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
ミューテクス状態監視スレッドに対し、スレッドを終了するよう要請します。 終了できたなら、MutexClosedイベントを発生します。 終了後は、MutexLock,MutexUnlock,MutexAbort,MutexCloseメソッドを使用できません。 |
セマフォーをオープンします。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
SemaphoreName | セマフォーの名前 |
MaxCount | 許容する最大の同時アクセス数(1以上) |
InitialCount | 初期に許される同時アクセス数(0以上MaxCount以下) |
(R) | (戻 値) |
True | 新規にセマフォーオブジェクトを作成しました。 |
False | 既存のセマフォーオブジェクトをオープンしました。 |
SemaphoreNameで指定された名前のセマフォーオブジェクトをオープンします。 指定された名前のセマフォーオブジェクトが無い場合は新規に作成します。 正常にオープンできると、セマフォーの状態を変更したり監視するためのスレッド(セマフォー状態監視スレッド)を生成します。セマフォー状態監視スレッドが生成されると、SemaphoreOpenedイベントが発生します。 SemaphoreOpenメソッドだけでは、セマフォーのアクセス権は確保されません。SemaphoreOpenedイベントが発生した以降SemaphoreCaptureメソッドを使ってセマフォーのアクセス権を確保してください。 SemaphoreClosedイベントが発生してセマフォー状態監視スレッドが終了するまで、このオブジェクトのMutexOpen、SemaphoreOpen、ConditionOpen、ProcessRun、ProcessExec、NotificationOpenの各メソッドを呼び出すことはできません。 |
セマフォーのアクセス権を確保します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
SemaphoreOpenメソッドでオープンしたセマフォーオブジェクトのアクセス権を確保します。 SemaphoreCaptureメソッドは、SemaphoreOpenメソッドで生成したセマフォー状態監視スレッドに依頼してアクセス権の確保を行ないます。 スレッドがアクセス権の確保の監視に入る直前にSemaphoreCapturingイベントを発生します。その後、アクセス権を確保できたら、SemaphoreCapturedイベントが発生し、確保できないと、SemaphoreAbortedイベントが発生します。 SemaphoreAbortedイベントは、タイムアウトが発生したとき、またはSemaphoreAbortメソッドが呼ばれたときに発生します。 確保できたかどうかを監視するのはSemaphoreOpenメソッドで生成したスレッドで行いますので、SemaphoreCaptureメソッドがブロックすることはありません。 SemaphoreCapturedイベント発生までは、資源を利用することはできませんが、ほかの処理を行なうことは可能です。 |
セマフォーのアクセス権を解放します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
SemaphoreOpenメソッドで生成したスレッドがアクセス権を保持していますので、このスレッドに対し、確保したアクセス権を解放するよう要請します。 解放されたなら、SemaphoreReleasedイベントが発生します。 アクセス権の解放は、セマフォー状態監視スレッドの終了とは違います。 SemaphoreReleaseedイベントが発生したあとに、再度SemaphoreCaptureメソッドを使ってアクセス権の確保を試みることができます。 SemaphoreReleaseメソッドを利用できるのは、SemaphoreSyncModeがTrueの状態でアクセス権を確保した場合だけです。 |
セマフォーのアクセス権の確保をあきらめます。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
SemaphoreCaptureメソッドを実行しているスレッドに対し、監視を中断するよう要請します。 中断できたなら、SemaphoreAbortedイベントを発生します。 監視の中断は、セマフォー状態監視スレッドが終了するわけではありませんので、SemaphoreAbortedイベントが発生したあとに、再度SemaphoreCaptureメソッドを使ってアクセス権の確保を試みることができます。 終了させるには、SemaphoreCloseメソッドを呼び出します。 |
セマフォーの監視スレッドを終了します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
セマフォー状態監視スレッドに対し、スレッドを終了するよう要請します。 終了できたなら、SemaphoreClosedイベントを発生します。 終了後は、SemaphoreCapture,SemaphoreRelease,SemaphoreAbort,SemaphoreCloseメソッドを使用できません。 |
指定したセマフォーの許可されるアクセス権を増加します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
SemaphoreName | セマフォーの名前 |
Count | 増加するアクセス可能なプロセス数(1以上) |
(R) | (戻 値) |
>0 | 現在のセマフォーの残り数(Increaseする直前) |
指定したセマフォーに対し同時アクセスできるプロセス数を増加します。 SemahphoreOpenメソッドのmaxcountで指定した数(1以上)までのプロセス数を指定することができます。 maxcountを0にしてSemaphoreOpenしている場合、必ずこのメソッドをどこかでだれかが呼び出すことになります。 また、SemaphoreSyncModeをFalseにした状態で、SemaphoreReCaptureを使用して、与えられたアクセス権を消費していくようなコーディングをしている場合にも、このメソッドで、アクセス権を補っていくことになります。 指定されたセマフォーが存在しない場合、トラップ可能なエラーが発生します。 |
コンディションをオープンします。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
ConditionName | コンディションの名前 |
AutoOff | Onの状態の継続モードを指示 True :する False:しない(初期値) |
OnStart | Onの状態でコンディションを作成します。 True :On状態で開始 False:Off状態で開始(初期値) |
(R) | (戻 値) |
True | 新規にコンディションオブジェクトを作成しました。 |
False | 既存のコンディションオブジェクトをオープンしました。 |
ConditionNameで指定された名前のコンディションオブジェクトをオープンます。 指定された名前のコンディションオブジェクトが無い場合は新規に作成します。 正常にオープンできると、コンディションの状態を監視するためのスレッド(コンディション状態監視スレッド)を生成します。コンディション状態監視スレッドが生成されると、ConditionOpenedイベントが発生します。 ConditionOpenメソッドだけでは、コンディションがonの状態を検出できません。ConditionOpenedイベントが発生した以降ConditionFindメソッドを使ってコンディションがonの状態を検出してください。 ConditionClosedイベントが発生してコンディション状態監視スレッドが終了するまで、このオブジェクトのMutexOpen、SemaphoreOpen、ConditionOpen、ProcessRun、ProcessExec、NotificationOpenの各メソッドを呼び出すことはできません。 |
コンディションがOnの状態を検出します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
ConditionFindメソッドはConditionOpenメソッドで生成されたスレッドにコンディションの状態の監視を依頼します。依頼するとまず、ConditionWaitingイベントが発生します。つぎに監視を開始します。監視をしている間そのスレッドは停止しています。コンディションがOnの状態を検出するとスレッドは再開し、ConditionFoundイベントを発生します。 |
ConditionFindメソッドの実行をキャンセルします。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
コンディション状態監視スレッドを終了します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
Conditionの状態をOnにします。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
コンディションをOnの状態にします。 ConditionFindメソッドを実行して、コンディションがOnの状態になるのを待っているオブジェクトでConditionFoundイベントが発生します。 |
Conditionの状態をOffにする。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
コンディションをOffの状態にします。 コンディションがOffの状態のときConditionFindメソッドを発行すると監視スレッドはOnになるまで待ち状態になります。 |
conditionの状態を一瞬Onにした後すぐにOffにする。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
コンディションをOnの状態にし、その時ConditionFindで待っているオブジェクトでConditionFoundイベントを発生させます。そしてその直後すぐにOffの状態にします。 |
ディレクトリの状態変更の検出を開始する。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
Directory | 監視するディレクトリパス名。 |
WatchSubTree | サブディレクトリも監視対象にするかどうかのフラグ。 |
WatchFilter | 監視する項目。 |
(WatchSubTree) | (意 味) |
True | サブディレクトリも監視対象にする。 |
False | サブディレクトリは監視対象にしない。 |
(WatchFilter) | (値) | (検出する項目) |
ipcFILE_NAME | =1 | ファイルの追加、削除、名前変更 |
ipcDIR_NAME | =2 | ディレクトリの追加、削除、名前変更 |
ipcATTRIBUTES | =4 | 属性の変更 |
ipcSIZE | =8 | ファイルサイズの変更 |
ipcLAST_WRITE | =16 | 最終更新日時の変更 |
ipcLAST_ACCESS | =32 | 最終参照日時の変更(NTのみ) |
ipcSECURITY | =256 | セキュリティの変更(NTのみ) |
Directoryで指定したディレクトリの状態変更を検出します。 検出項目は、WatchFilterで指定します。複数の項目を指定するにはそれらの値をORしたものを設定してください。 ディレクトリの状態変更を検出するために専用のスレッド(ディレクトリ変更監視スレッド)を生成します。ディレクトリ変更監視スレッドが生成されると、NotificationOpenedイベントが発生します。 この状態では、ディレクトリの状態変更の検出は行われていますが、通知されません。通知されるには、NotificationFindメソッドを呼び出します。 このメソッドが呼び出されると、まず、NotificationWaitingイベントが発生します。 その後ディレクトリで監視する項目の変更を検出すると、NotificationFoundイベントが発生します。さらに検出を続けるには、再度、NotificationFindメソッドを呼び出してください。 ディレクトリに変化があったことはわかりますが、どのファイルに変化があったかまでは通知されません。 |
ディレクトリの状態変更の通知を待ちます。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
ディレクトリの状態変更の通知処理を中断します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
ディレクトリの状態変更監視スレッドを終了します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
ディレクトリの状態変更監視スレッドに対し監視を終了するよう要請します。 終了したならNotificationClosedイベントを発生します。 終了後は、NotificationFind、NotificationAbort、NotificationCloseメソッドは、使用できません。 |
共有メモリをオープンします。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
SharedMemoryName | 共有メモリの名前。 |
DefaultData | 初期値。 |
ReserveByteLen | 確保バイト数(オプション)。 |
(R) | (戻 値) |
True | 新規に共有メモリを作成した。 |
False | 既存の共有メモリをオープンした。 |
共有メモリをSharedMemoryNameという名前で作成します。 作成する共有メモリのサイズは、DefaultDataを格納できます。 サイズまたはReserveByteLenで指定されたサイズの大きい方です。 DefaultDataの型と共有メモリのサイズは共有メモリに記憶され、他のプロセスがこの共有メモリに対しSharedMemoryOpenを発行したときに検査されます。 共有メモリに保存できるのは、文字列の配列およびバリアントの配列、オブジェクト、Empty値以外のすべての型およびその配列です。 すでに作成されている場合は、それをオープンし、共有メモリの型、最大サイズがSharedMemoryOpenの引数の指定と一致するかを調べます。 |
共有メモリにデータを保存します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
Data | 保存するデータ。 |
SharedMemoryOpenで作成された共有メモリにデータを保存します。 SharedMemoryOpenで作成されたデータ型と同じデータしか保存することはできません。データサイズもチェックされ、共有メモリよりも大きな値は保存できずにエラーになります。 共有メモリに保存できるのは、文字列の配列およびバリアントの配列、オブジェクト、Empty値以外のすべての型およびその配列です。 |
共有メモリからデータを読み出します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
バリアント(Variant)
共有メモリに保存されているデータを読み出し、VARIANT変数に格納して返します。 配列でなければVARIANTではなく格納したときの型の変数で受けることも可能です。 配列データは必ずVARIANT変数で受けてください。 但し、バイト配列は例外で、可変長バイト配列で受けることが可能です。 また、バイト配列は可変長文字列変数でも受けることが可能です。 |
共有メモリをクローズする。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
バリアント(Variant)
メソッド内で発生した詳細エラーコードを示します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
長整数型(Long)
メソッド内で発生した詳細エラーコードを示します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
文字列(String)
プロセス監視スレッドが開始したときに発生します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
ProcessRunメソッドおよびProcessShellメソッドの実行によりプロセスのプロセス監視スレッドが開始したときに発生します。 |
プロセスの終了を検出する直前に発生します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
ProcessWaitメソッドの実行によりプロセスの終了の検出を開始する直前に発生します。 |
起動したプロセスが終了した時に発生します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
Code | プロセスの終了コードです。 |
起動したプロセスが終了した時に発生します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
Reason | 中断の理由 1: タイムアウトによる中断 2: ProcessAbortメソッドによる中断 |
プロセス監視スレッドが終了すると発生します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
Code | 終了コード 0:正常終了 その他:Win32 APIエラーコード |
Msg | Win32 APIエラーメッセージ |
プロセス監視スレッドが終了すると発生します。 プロセス監視スレッドが終了するのは、ProcessCloseメソッドが実行されたときまたは待ち状態(WAIT状態)でエラーになったとき、または、コントロールがアンロードされるときですが、コントロールがアンロードされるときは、このイベントは発生しません。 |
ミューテクス状態監視スレッドが生成されると発生します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
MutexLockメソッドによりミューテクスのアクセス権の確保を行なおうとしています。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
MutexLockメソッドの結果、ミューテクスのアクセス権を確保できたことを通知します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
このイベントのあとMutexUnlockメソッドを発行するまで、資源へのアクセス権を保持します。 |
ミューテクスのアクセス権がなくなったことを通知します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
ミューテクス状態監視スレッドが終了すると発生します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
Code | 終了コード 0:正常終了 その他:Win32 APIエラーコード |
Msg | Win32 APIエラーメッセージ |
ミューテクス状態監視スレッドが終了すると発生します。 ミューテクス状態監視スレッドが終了するのは、MutexCloseメソッドが実行されたときまたは待ち状態(WAIT状態)でエラーになったとき、または、コントロールがアンロードされるときですが、コントロールがアンロードされるときは、このイベントは発生しません。 |
SemaphoreOpenメソッドによりセマフォー状態監視スレッドが開始されたことを通知します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
このイベントのあとSemaphoreCaptureメソッドを発行することによりセマフォーのアクセス権を確保することができます。 |
SemaphoreCaptureメソッドによりセマフォーを獲得しようとしています。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
このイベントのあとセマフォー状態監視スレッドはセマフォーのアクセス権を確保するまで停止します。 |
SemaphoreCaptureメソッドの結果アクセス権を獲得できたことを通知します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
このイベントのあとSemaphoreReleaseメソッドを発行するまで、資源へのアクセス権を保持します。 |
セマフォーのアクセス権がなくなったことを通知します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
SemaphoreReleaseメソッドを発行するとこのイベントが発生します。
セマフォー状態監視スレッドが終了すると発生します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
Code | 終了コード 0:正常終了 その他:Win32 APIエラーコード |
Msg | Win32 APIエラーメッセージ |
セマフォー状態監視スレッドが終了すると発生します。 セマフォー状態監視スレッドが終了するのは、SemaphoreCloseメソッドが実行されたときまたは待ち状態(WAIT状態)でエラーになったとき、または、コントロールがアンロードされるときですが、コントロールがアンロードされるときは、このイベントは発生しません。 |
ConditionOpenメソッドによりコンディション状態監視スレッドが開始されたことを通知します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
このイベントのあとConditionFindメソッドを発行することによりコンディションがOnの状態を検出することができます。 |
ConditionFindメソッドによりコンディションがOnの状態を検出しようとしています。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
このイベントのあとコンディション状態監視スレッドはコンディションがOnの状態を検出するまで停止します。 |
ConditionFindメソッドの結果、コンディションがOnの状態を検出できたことを通知します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
コンディション状態監視スレッドが終了すると発生します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
Code | 終了コード 0:正常終了 その他:Win32 APIエラーコード |
Msg | Win32 APIエラーメッセージ |
コンディション状態監視スレッドが終了すると発生します。 コンディション状態監視スレッドが終了するのは、ConditionCloseメソッドが実行されたときまたは待ち状態(WAIT状態)でエラーになったとき、または、コントロールがアンロードされるときですが、コントロールがアンロードされるときは、このイベントは発生しません。 |
NotificationOpenメソッドによりディレクトリ変更監視スレッドが開始されたことを通知します。
Private Sub object_NotificationOpened()
NotificationOpenedイベントの構文の指定項目は次のとおりです。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
このイベントの後、NotificationFindメソッドを発行するとディレクトリの変更を通知するようになります。 |
NotificationFindメソッドが発行された直後に発生します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
ディレクトリの変更を検出した時に発生します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
NotificatioOpenメソッドで指定したディレクトリの変更があるとき、NotificationFindメソッドが実行されるとこのイベントが発生します。 |
ディレクトリ変更監視スレッドが終了すると発生します。
(指定項目) | (内 容) |
Object | IPCOCXオブジェクトです。 |
Code | 終了コード 0:正常終了 その他:Win32 APIエラーコード |
Msg | Win32 APIエラーメッセージ |
ディレクトリ変更監視スレッドが終了すると発生します。 ディレクトリ変更監視スレッドが終了するのは、NotificationCloseメソッドが実行されたときまたは待ち状態(WAIT状態)でエラーになったとき、または、コントロールがアンロードされるときですが、コントロールがアンロードされるときは、このイベントは発生しません。 |
メソッドまたはプロパティ | 発生しうるトラップ可能なエラーコード | |||||||
ConditionAbort | 29922 | |||||||
ConditionFind | 29922 | |||||||
ConditionOff | 29922 | |||||||
ConditionOn | 29922 | |||||||
ConditionOnAndOff | 29922 | |||||||
ConditionOpen | 29901 | 29907 | 29912 | 29920 | ||||
MutexAbort | 29922 | |||||||
MutexLock | 29922 | |||||||
MutexOpen | 29901 | 29912 | 29920 | |||||
MutexUnlock | 29922 | |||||||
NotificationAbort | 29922 | |||||||
NotificationFind | 29922 | |||||||
NotificationOpen | 29901 | 29911 | 29912 | 29914 | ||||
ProcessAbort | 29922 | |||||||
ProcessExec | 29901 | 29902 | 29911 | 29912 | 29919 | |||
ProcessRun | 29901 | 29902 | 29911 | 29912 | 29919 | |||
ProcessWait | 29922 | |||||||
SemaphoreAbort | 29922 | |||||||
SemaphoreCapture | 29922 | |||||||
SemaphoreIncrease | 29910 | 29913 | ||||||
SemaphoreOpen | 29901 | 29912 | 29913 | |||||
SemaphoreRelease | 29922 | |||||||
SharedMemoryOpen | 29901 | 29905 | 29907 | 29908 | 29915 | 29916 | 29917 | 29924 |
SharedMemoryRead | 29904 | 29918 | 29924 | |||||
SharedMemoryWrite | 29904 | 29907 | 29908 | 29915 | 29917 | 29924 | ||
ShowStyle | 29910 |
エラーコード | 内 容 |
29900 | win32API呼び出しでエラーが発生致しました。 |
29901 | 同時に実行できないメソッドを実行中です。 |
29902 | 既存のプロセスがあります。プロセスは育成されませんでした。 |
29904 | 先にオープンして下さい。 |
29905 | 引数は省略できません |
29907 | 引数の方が正しくありません。 |
29908 | 共有メモリの型または大きさが一致しません。 |
29910 | 引数の範囲が正しくありません。 |
29911 | 引数が正しくありません。 |
29912 | 待ちスレッドを作成できません。 |
29913 | セマフォーを作成できません。 |
29914 | ディレクトリ監視に失敗しました。 |
29915 | この型の配列は指定できません。 |
29916 | 共有メモリを作成できません。 |
29917 | 引数からデータを取り出すことが出来ません。 |
29918 | 共有メモリからデータを取り出すことが出来ません。 |
29919 | プロセスを作成できません。 |
29920 | ミューテックスを作成できません。 |
29921 | ミューテックスがありません。 |
29922 | 操作が正しくありません。 |
29923 | コンディションを作成できません。 |
29924 | タイムアウトしました。 |
その他 | エラーが発生しました。 |
外部コマンドを起動してアイコンに変わります。
外部コマンドが終了すると元の大きさに戻ります。
指定したファイルに関連付けられたプログラムを起動します。
起動するアプリケーションのカレントディレクトリが変更できます。
該当ファイルタイプに登録されたアクションを指定できます。
一般的にはOpen(開く)が対応しています。
まだ、アプリケーションのウィンドウ表示状態も指定できます。
![]() |
|
|
◆コンディションのデモ
◆待合せ(セマフォ)のデモ
|
発行所:株式会社ウィル
本紙の内容を許可なく複写、転載、データファイル化することを禁じます。
(C) Copyright 1998-2002 WILL Corporation. All rights reserved