VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/05/08(Thu) 11:13
投稿者西一
Eメール
URL
タイトル同じ処理を複数起動する方法

こんにちは、皆さん。

単純な質問かも知れませが、同じ処理を複数起動する方法について教えて下さい。

処理は"あるフォルダ"のファイルを監視するプログラムです。
(FindFirstChangeNotificationを使って監視しようかと思っています。)

"あるフォルダ"と言うのは実行環境に依って複数あります。(数は決められません)

現状、メインプログラムから監視プログラムを起動すると、ファイルの監視中はメインプログラム
も止まってしまいます。
これを、何とか止まらずに"あるフォルダ"分監視し続ける良い方法はないでしょうか?

メインプログラム終了時は全ての監視処理を終了します。

*----監視プログラム-------------------------------------------------------------------
Private Sub Surveillance(ImgFolder As String)
'ImgFolderは呼び元から受け渡されるフォルダ名x:\xxxx\xxx
  
  Dim NotificationHandele
  Dim bWaiting        As Boolean
  Dim ErrCode
  Dim lngResult
  
  Dim lngSTARTTick    As Long
  
  Dim strDcmFile      As String
  Const WAIT_OBJECT_0  As Long = 0
  
  Dim ImgFolder      As String
  'ImgFolder = "c:\&&Temp\#1"  '監視フォルダ()
  
  Set objFS = CreateObject("Scripting.FileSystemObject")
  '*** ファイル変更通知object のスタート
  NotificationHandele = FindFirstChangeNotification _
                       (pImgFolder, False, FILE_NOTIFY_CHANGE_FILE_NAME)
  
  If NotificationHandele = INVALID_HANDLE_VALUE Then    '関数エラーの場合
    ErrCode = GetLastError
    Call EndRTN(ErrCode) '*** 終了処理の実行
  End If
  
  bWaiting = True
  Do While bWaiting = True
    lngResult = WaitForSingleObject(NotificationHandele, INFINITE)
    
    If (lngResult = WAIT_OBJECT_0) Then             'ファイル作成を感知した場合
      strDcmFile = Dir$(pImgFolder & "\*.*")        'ファイル名の取得
      Call FileRegist    '****** 登録処理を実行
      FindNextChangeNotification  _
            (pImgFolder & NotificationHandele)      'ファイル変更通知object のリスタート
    End If
  Loop
  '*** 通知オブジェクトをクローズ
  FindCloseChangeNotification (NotificationHandele)

End Sub
*----監視プログラム-------------------------------------------------------------------
【理想】
+--------------+            +--------------+
| メイン       |<-----+---->|Aファルダ監視 |
+--------------+      |     +--------------+
                      |     +--------------+
                      +<--->|Bファルダ監視 |
                      |     +--------------+
                      |     +--------------+
                      +<--->|Cファルダ監視 |
                      :    +--------------+
           :      :
<--->:ファイルが作成されるとそのファイル名を取得。
メインプログラムではそのファイルを読んで処理を行ないます。

複数起動出来て、各々監視出るようにしたいです。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -