Skip to content

Detection

Astro-Up automatically detects installed astrophotography software using 9 detection methods, ordered by reliability.

Detection Methods

MethodUse caseKey fields
RegistryMost installed appsregistry_key, registry_value
PeFileApps with versioned executablesfile_path; optional version_regex for binary string extraction
FileExistsPortable apps, data filesfile_path
ConfigFileApps with version in config filesfile_path, version_regex
AscomProfileASCOM driversDevice type + ProgID
WmiUSB/hardware driversdriver_provider, device_class, inf_name
DriverStoreDriver packagesINF name
WmiAppsWin32_InstalledWin32Program matchingName pattern matching
LedgerManual tracking onlyRecorded from previous installs

Registry

The primary detection method. Astro-Up scans the standard uninstall keys (HKLM and HKCU) plus application-specific registry keys defined in the catalog. Registry entries provide the installed version, install path, and uninstall command.

PE Header Analysis

For software without clean registry entries, Astro-Up reads PE (Portable Executable) headers from known install locations to extract FileVersion and ProductVersion. Some applications (e.g., ASTAP) embed placeholder PE versions -- for these, Astro-Up falls back to version_regex to extract the real version from binary strings in the executable.

Fallback Chains

Detection configs support a fallback field. If the primary method does not find the package, the fallback method is tried. This handles cases where the same software installs differently depending on method (MSI vs EXE vs ZIP).

How Scanning Works

  1. For each package with a detection config, gather detection rules
  2. Run the primary detection method
  3. If not found, try the fallback chain
  4. Parse version strings and normalize to semver
  5. Compare detected version against latest catalog version

Scan Triggers

  • GUI: automatic on launch (configurable), or via the Installed view refresh button
  • CLI: astro-up scan

Detection Status

StatusMeaning
InstalledFound and up to date
Update AvailableInstalled but newer version exists
Not InstalledNot found on system
AcknowledgedManually marked as known (via Ledger)

Licensed under Apache-2.0