V45.38: suppress iZotope 0x7E dialog

- _is_vst2_dll: pure-Python PE export-table check (magic-aware dd offset
  PE32+112) -> IZOzone11Core.dll (runtime lib, no VSTPluginMain) dropped
  from VST2 lists in _scan_plugins and list_scan_all; plugins.py same.
- _hidden_desktop_startupinfo: scan subprocess runs on hidden desktop
  (user32 CreateDesktopW, HDESK restype) -> third-party MessageBox invisible.
- SetErrorMode(SEM_FAILCRITICALERRORS|SEM_NOOPENFILEERRORBOX) in all 4
  bridge mains: missing dependency DLL fails silently instead of blocking.
This commit is contained in:
2026-09-01 20:10:33 +07:00
parent aee537a0af
commit 29b5f053a0
14 changed files with 157 additions and 7 deletions
+3 -2
View File
@@ -4,7 +4,7 @@ from fastapi.responses import FileResponse
from pydantic import BaseModel
from typing import Optional, Any
from app.config import settings
from app.core.vst_engine import PluginManager, HAS_PYFLUIDSYNTH, render_soundfont_midi_to_audio, RENDER_LOCK, _render_locked
from app.core.vst_engine import PluginManager, HAS_PYFLUIDSYNTH, render_soundfont_midi_to_audio, RENDER_LOCK, _render_locked, _is_vst2_dll
from app.core.soundfont_inspector import SoundFontInspector
from app.core.soundfont_converter import SoundFontConverter
from app.core.soundfont_scanner import SoundFontAutoScanner
@@ -348,7 +348,8 @@ def _scan_vst_in_dirs(dirs: list) -> list:
"id": name, "name": name, "type": "VST3",
"path": os.path.join(root, f),
}
elif low.endswith(".dll") and not has_vst3_file:
elif (low.endswith(".dll") and not has_vst3_file
and _is_vst2_dll(os.path.join(root, f))):
name = os.path.splitext(f)[0]
if name not in found:
found[name] = {