2013-08-11 2 views
1

누군가가 코드 또는 API 모음을 제공하여 vb classic (vb 6.0)을 사용하여 Windows 기반 OS에서 모든 복사 이벤트를 모니터링 할 수 있습니다.Windows에서 복사 이벤트를 감지합니다.

사용자가 컴퓨터에서 파일을 복사한다고 가정하고 복사 이벤트를 트랩하려면 복사 할 파일의 이름을 가져오고 해당 날짜에 복사 한 로그를 기록하려면 어떻게해야합니까? 파일 추적에 대한 무료 프로그램을 만들고 싶습니다. 내가 봤 거든 및 Windows에서 복사 이벤트를 감지하는 코드를 찾을 수 없습니다. 도와주세요.

답변

0

Timer 컨트롤 만들기 (또는 DoEvents()와 루프에 그것을 가지고) 등처럼 GetClipboardData()를 사용 FYI

Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long 
Private Declare Function GetClipboardData Lib "user32" (ByVal wFormat As Long) As Long 
Private Declare Function CloseClipboard Lib "user32"() As Long 
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Long) As Long 
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Long, ByVal ByteLen As Long) 
Private Sub Timer1_Timer() 
    Dim ptr As Long 
    OpenClipboard hwnd 
    ptr = GetClipboardData(49158) 
    If ptr Then 
     Dim size As Long 
     size = lstrlen(ptr) 
     If size > 0 Then 
      Dim data As String 
      data = Space$(size) 
      CopyMemory ByVal data, ByVal ptr, size 
      MsgBox data 
     End If 
    End If 
    CloseClipboard 
End Sub 

: 49158는 "파일 이름"라는 개인 클립 보드 형식이며, 불행히도 사용할 수 없습니다 숫자가 Integer에 비해 너무 높기 때문에 Clipboard.GetData()을 사용하십시오.

무언가를 복사하면 data 변수에 복사 된 파일 이름이 포함됩니다.

0

클립 보드를 모니터링 할 수 있습니다. ClipBoard Monitor C# 실제로 파일이 아닌 파일 이름이나 파일 내용이 복사 된 것을 나타냅니다. 실제 기록을 잡으려면 더 많은 것을해야합니다.

+0

답장을 보내 주셔서 감사합니다.하지만 C#을 사용하지 않습니다 ... vb6.0을 사용하고 있습니다. vb.net에 filewatcher.dll이 있지만 Vb6.0을 선호합니다. –

0

나는 당신이 필요로이 질문/대답은 당신을 얻을해야하는 경우에, 당신이 누락 된 용어 "훅"이라고 생각 : Windows XP/7 copy FILE hook

1) 당신은 CopyFile 수와 CopyFileEx 같은 WINAPI 함수를 연결할 수 있습니다 자신을 후크를 작성하거나 madCodeHook 또는 Deviare API 후크와 같은 API 후크 라이브러리를 사용하여 시스템 전체 훅을 만들어 (나는 좋은 결과와 함께 모두 라이브러리를 사용했습니다.)

2) 파일 시스템 필터 드라이버를 작성.

관련 문제