0
我一直只在程序集中2個星期現在所以我是一種新的組裝,我需要一些幫助。使用masm組件注意一個目錄的變化
我需要觀察目錄和所有子目錄以進行更改。我需要通知的唯一更改是文件創建和文件編輯時,但是如果包含其他人很好。
我需要通知對消息框進行了更改的文件。我不需要知道文件所做的更改,我只需要文件路徑到消息框。我試圖搜索網頁,但無法找到任何關於如何在彙編特別masm中做到這一點。
我能找到的唯一東西是我認爲是爲masm編寫的代碼,我嘗試過但是它的消息框A或其他字母,就是這樣,它阻止了我更改該目錄中任何文件的名稱,而我不希望它這樣做。
.data
FolderPath3 db "C:\users",0
.data ?
hFile dd ?
FileBuffer DB 200 DUP(?)
ThreadProc PROC uses edi esi Param:DWORD
LOCAL lpBytesReturned:dword
invoke CreateFile,addr FolderPath3,GENERIC_READ,FILE_SHARE_DELETE or FILE_SHARE_READ,0,\
OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS,0
mov hFile,eax
invoke ReadDirectoryChangesW,hFile,addr FileBuffer,sizeof FileBuffer,TRUE,FILE_NOTIFY_CHANGE_LAST_ACCESS,\
addr lpBytesReturned,0,0
.if eax==0
invoke MessageBoxA,0,0,0,MB_OK
.else
xor ecx,ecx
@@:
add edi,ecx
lea edi,FileBuffer
mov esi,[edi].FILE_NOTIFY_INFORMATION.Action
.if esi==FILE_ACTION_MODIFIED
invoke MessageBoxA, NULL, addr [edi].FILE_NOTIFY_INFORMATION.FileName, offset BoxCaption, NULL
.elseif esi==0
invoke CloseHandle,hDir
ret
.endif
mov ecx,[edi].FILE_NOTIFY_INFORMATION.NextEntryOffset
.if ecx==0
invoke RtlZeroMemory,addr FileBuffer,sizeof FileBuffer
jmp ThreadProc
.endif
jmp @B
.endif
ret
ThreadProc ENDP
如果有人能解決上面的代碼或告訴我不同的代碼,它的工作將是巨大的, 謝謝
我確實有這個vb.net版本,但我仍然不知道在裝配中做什麼 – patchariadog