Почему-то ClearEventLog действует только на один файл, а их в папке config - целых 3. Может подскажите, в чём может быть проблема? вот код: Код (Text): .586 .model flat,stdcall option casemap:none include \masm32\include\windows.inc include \masm32\include\user32.inc includelib \masm32\lib\user32.lib include \masm32\include\kernel32.inc includelib \masm32\lib\kernel32.lib include \masm32\macros\strings.mac include \masm32\include\Advapi32.inc includelib \masm32\lib\Advapi32.lib .data szConf db "\config\",0 WinDir db 512 dup(?) .code ClearEventLogs proc cfName:dword local hEventLog:HANDLE invoke OpenEventLogA,0,cfName mov hEventLog,eax test eax,eax jz @F invoke ClearEventLogA,hEventLog,0 @@:invoke CloseEventLog,hEventLog ret ClearEventLogs endp GetEvent proc uses edi lpPath:DWORD local hFind:DWORD local wfd:WIN32_FIND_DATA invoke lstrlen,lpPath mov edi,eax invoke lstrcat,lpPath,$CTA0("*.Evt") invoke FindFirstFile,lpPath,addr wfd mov hFind,eax test eax,eax jz sf_exit sf_loop:mov eax,lpPath mov byte ptr [eax+edi],0 invoke lstrcat,lpPath,addr wfd.cFileName test dword ptr [wfd.dwFileAttributes],FILE_ATTRIBUTE_DIRECTORY jz sf_file jmp sf_next sf_file:invoke ClearEventLogs,lpPath sf_next:invoke FindNextFile,hFind,addr wfd test eax,eax jnz sf_loop sf_exit:invoke FindClose,hFind ret GetEvent endp start: invoke GetSystemDirectory ,addr WinDir,512 invoke lstrcat,addr WinDir,addr szConf invoke GetEvent,addr WinDir invoke ExitProcess,0 end start Только стирает все записи из AppEvent.Evt А SecEvent.Evt и SysEvent.Evt остаются нетронутыми. Я думал, дело в привилегиях, получил, но серавно не помогло.
Flasher Afaik в качестве второго параметра функции OpenEventLog надо указывать не имя файла, а одно из имен из ветки реестра HKLM\SYSTEM\CurrentControlSet\Services\Eventlog.
q_q Благодарю! Всего-то нуно было писать вот так: Код (Text): invoke ClearEventLogs,$CTA0("Application") invoke ClearEventLogs,$CTA0("System") invoke ClearEventLogs,$CTA0("Security")