init
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
---
|
||||
source_files:
|
||||
- DataPRO/Modules/InstallerCustomActions/WarnWindows11/WarnWindows11.cs
|
||||
generated_at: "2026-04-17T16:15:12.796756+00:00"
|
||||
model: "zai-org/GLM-5-FP8"
|
||||
schema_version: 1
|
||||
sha256: "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.
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user