tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 「コンピューター名」「ユーザー名」「所有者名」も表示
投稿日: 2019/09/27(Fri) 10:15
投稿者しずく
はじめまして、超初心者です。

VBSの掲示板を探したのですが、良い所がなくここにたどりつきました。
ネットワーク上のフォルダを監視するソースをネット上で見つけました。
基本的には、これでいいのですが、ただ
「コンピューター名」「ユーザー名」「所有者名」も表示したいのですが
皆目、分りません。どうか、先生方宜しく、お願い致します。

;;;見つけたソースです。

' --------------------------------------------------------------------
' VBAの時はSleepのAPI宣言(Declare)が必要
' Private Declare Sub Sleep Lib "kernel32" (ByVal dwMs As Long)
' --------------------------------------------------------------------
' 監視するフォルダの設定

fol_path = "D:\仕掛図"

' (変更前)フォルダ内のファイル一覧(更新日時付き)の取得
Redim path_list1(0)
GetFDate fol_path, path_list1

'Dim path_list0() ' VBAの時に必要
path_list0 = path_list1

Do
    WScript.Sleep(1000)   ' VBSの時
    'Sleep 1000: DoEvents ' VBAの時

    ' (変更後)フォルダ内のファイル一覧(更新日時付き)の取得
    Redim path_list2(0)
    GetFDate fol_path, path_list2

    ' 変更前後のファイル一覧(更新日時付き)の比較
    Redim comp_list(0)
    FComp path_list0, path_list2, comp_list

    ' 比較結果表示
    For i = 1 To Ubound(comp_list)
        MsgBox comp_list(i)
    Next

    ' 変更後を変更前として設定
    path_list0 = path_list2
Loop
' --------------------------------------------------------------------

' フォルダ内のファイル一覧(更新日時付き)の取得------------------------
Public Sub GetFDate(ByVal fol_path, ByRef path_list())
    Set fso = CreateObject("Scripting.FileSystemObject")

    For Each f In fso.GetFolder(fol_path).files
        ReDim Preserve path_list(UBound(path_list) + 1)
        path_list(UBound(path_list)) = _
            f.path & vbTab & fso.GetFile(f.path).DateLastModified
    Next

    For Each f In fso.GetFolder(fol_path).SubFolders
        GetFDate f.path, path_list
    Next

    Set fso = Nothing
End Sub
' --------------------------------------------------------------------

' ファイル一覧(更新日時付き)の比較------------------------------------
Public Sub FComp(ByRef ls1(), ByRef ls2(), ByRef comp_list())
    p1 = 1
    p2 = 1
    Do
        If p1 > Ubound(ls1) And p2 > Ubound(ls2) Then
            Exit Do
        End If

        fd1 = ""
        fd2 = ""
        If p1 <= Ubound(ls1) Then
            fd1 = Split(ls1(p1), vbTab)
        End If
        If p2 <= Ubound(ls2) Then
            fd2 = Split(ls2(p2), vbTab)
        End If

        If IsArray(fd1) = True And IsArray(fd2) = True Then
            fn1 = LCase(fd1(0))
            fn2 = LCase(fd2(0))
            If fn1 = fn2 Then
                If fd1(1) = fd2(1) Then
                ElseIf fd1(1) <> fd2(1) Then
                    ReDim Preserve comp_list(UBound(comp_list) + 1)
                    comp_list(UBound(comp_list)) = "(Mod)" & fd1(0)
                End If
                p1 = p1 +1
                p2 = p2 +1
            ElseIf fn1 < fn2 Then
                ReDim Preserve comp_list(UBound(comp_list) + 1)
                comp_list(UBound(comp_list)) = "(Del)" & fd1(0)
                p1 = p1 +1
            ElseIf fn1 > fn2 Then
                ReDim Preserve comp_list(UBound(comp_list) + 1)
                comp_list(UBound(comp_list)) = "(Add)" & fd2(0)
                p2 = p2 +1
            End If
        ElseIf IsArray(fd1) = True And IsArray(fd2) = False Then
            ReDim Preserve comp_list(UBound(comp_list) + 1)
            comp_list(UBound(comp_list)) = "(Del)" & fd1(0)
            p1 = p1 +1
        ElseIf IsArray(fd1) = False And IsArray(fd2) = True Then
            ReDim Preserve comp_list(UBound(comp_list) + 1)
            comp_list(UBound(comp_list)) = "(Add)" & fd2(0)
            p2 = p2 +1
        Else
            p1 = p1 +1
            p2 = p2 +1
        End If
    Loop

End Sub
' --------------------------------------------------------------------

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

古いスレッドにレスはつけられません。