Можно как-то в чужом приложении запретить окно ошибок? Как-то запустить приложение или в Windows (8.1) где-то убрать эти сообщения? Или написать запускатель который ждёт, ловит и закрывает тупо) Окно только при закрытии возникает всегда. Или может код проги поправить
Вот только инструкция явно не из пользовательского пространства. Значит просто закрыть сообщение это не правильное решение. Надо бы по хорошему это исправлять.
Можно написать библиотеку dll с SEH/VEH, которая будет перехватывать ошибки. Далее берёшь софтину CFF-Explorer, и через её пункт "Import Adder" подключаешь эту либу к глючной проге. Если повезёт - можешь отловить окно, и молча закрыть его.
Код (Text): include '%fasm%/win64ax.inc' section '.code' executable start: sub rsp,8 invoke SHGetSpecialFolderPath,NULL,a,CSIDL_PROGRAM_FILES,NULL invoke PathAddBackslash,a invoke lstrcat,a,'Giglad' invoke PathAddBackslash,a invoke lstrcat,a,'Giglad.exe' invoke GetBinaryType,a,z cmp eax,NULL jz exit invoke RtlZeroMemory,startInfo,sizeof.startInfo invoke RtlZeroMemory,procInfo,sizeof.procInfo mov [startInfo.cb], sizeof.startInfo invoke CreateProcess,NULL,a,NULL,NULL,DETACHED_PROCESS,NORMAL_PRIORITY_CLASS,NULL,NULL,startInfo,procInfo invoke WaitForSingleObject,[procInfo.hProcess],0xffffffff ; INFINITE invoke CloseHandle,procInfo.hProcess invoke CloseHandle,procInfo.hThread mov ecx,30 @@: invoke FindWindow,NULL,'Giglad.exe - Application Error' mov [r],eax cmp eax,NULL jnz @f dec ecx cmp ecx,NULL jz @f invoke Sleep,300 jmp @r @@: invoke CloseWindow,[r] invoke Sleep,300 invoke CloseWindow,[r] exit: invoke ExitProcess,NULL section '.data' readable writeable a rb MAX_PATH b rb MAX_PATH r dd NULL x dd NULL z dd NULL startInfo STARTUPINFO <> sizeof.startInfo = $ - startInfo procInfo PROCESS_INFORMATION <> sizeof.procInfo = $ - procInfo section '.idata' import readable library kernel32,'KERNEL32.DLL',shell32,'SHELL32.DLL',shlwapi,'SHLWAPI.DLL',user32,'USER32.DLL' include '%fasm%/api/kernel32.inc' include '%fasm%/api/shell32.inc' include '%fasm%/api/shlwapi.inc' include '%fasm%/api/user32.inc' Что-то я тут набрал, вроде один раз сработало, но это не точно) --- Сообщение объединено, 23 апр 2025 --- Вот что-то такое я предполагал HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting, Disabled = 0x00000001 Хотя лучше бы персонально, как-то DebugApplications\[ExeName] но там я не понял где и как.. https://learn.microsoft.com/en-us/windows/win32/wer/wer-settings --- Сообщение объединено, 23 апр 2025 --- Вот что ещё там вычитал: Код (Text): include '%fasm%/win64ax.inc' section '.code' executable start: sub rsp,8 invoke WerAddExcludedApplication,a,1 exit: invoke ExitProcess,NULL section '.data' readable a du 'Giglad.exe',NULL section '.idata' import readable library kernel32,'KERNEL32.DLL',wer,'WER.DLL' include '%fasm%/api/kernel32.inc' import wer,WerAddExcludedApplication,'WerAddExcludedApplication' Теперь понятно, интересно, а работать будет) --- Сообщение объединено, 23 апр 2025 --- Код (Text): invoke SHSetValue,HKEY_LOCAL_MACHINE,'Software\Microsoft\Windows\Windows Error Reporting\ExcludedApplications','Giglad.exe',REG_DWORD,@00000001,4
Посмотрел, сообщение идёт через \\WindowsErrorReportingServicePort Может не дать его открыть, права попробовать урезать..