Files
2026-04-17 14:55:32 -04:00

2.3 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
DataPRO/Modules/InstallerCustomActions/WarnWindows11/WarnWindows11.cs
2026-04-17T16:15:12.796756+00:00 zai-org/GLM-5-FP8 1 2c9c3764491675e8

WarnWindows11

Purpose

This module serves as a Windows Installer custom action that detects whether the target system is running Windows 11 and displays a warning message to the user if detected. It is designed to be executed during installation to inform users of potential compatibility concerns with the Windows 11 operating system.

Public Interface

  • OSWarning (class)
    • public static void Main(string[] args) - Entry point for the custom action. Spawns systeminfo.exe, captures its output, parses it line-by-line for the string "MICROSOFT WINDOWS 11" (case-insensitive), and displays a message box with the warning resource Properties.Resources.WARNING_WINDOWS11 if detected. All exceptions are silently caught and ignored.

Invariants

  • The process systeminfo.exe must be available on the target system PATH.
  • The resource string Properties.Resources.WARNING_WINDOWS11 must be defined in the project's resource file.
  • The method always completes without throwing exceptions to the caller (all exceptions are caught and swallowed).

Dependencies

  • Depends on: System, System.Diagnostics, System.Windows (for MessageBox), and project resources (Properties.Resources).
  • Depends on external executable: systeminfo.exe (Windows system utility).
  • Depended by: Unclear from source alone; likely invoked by an MSI installer or setup executable as a custom action.

Gotchas

  • Silent failure: The catch (Exception) { } block swallows all exceptions without logging, meaning any failure (missing systeminfo.exe, permission issues, resource loading errors) will fail silently.
  • Synchronous blocking: reader.ReadToEnd() and process.WaitForExit() block the calling thread; this could cause installer UI freezes if run on the UI thread.
  • Fragile detection logic: Detection relies on exact string matching of systeminfo.exe output format ("MICROSOFT WINDOWS 11"), which could break if Microsoft changes the output format.
  • No exit code handling: The process exit code is not checked; systeminfo.exe could fail and the code would not detect it.