Skip to content

Windsturm-LLC/Searchify-Examples

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Searchify Examples

This repository contains implementation examples for packaging and launching Searchify in different languages.

The goal of each example is the same: deliver installer-style behavior with minimal user setup.

Repository Structure

  • CSharp-Example
    • .NET Framework example using embedded resources and installer-style extraction/launch flow.
  • Python-Example
    • Python launcher with optional one-file EXE packaging using PyInstaller.

Important Requirement (All Examples)

Searchify must run elevated (Administrator/UAC) at least once.

Admin privileges are required for setup operations such as:

  • Registry access and registration steps.
  • Writing to protected or system-managed paths where needed by setup.
  • Installing the required certificate.

The %appdata%\GlobalSearchOptimizer path is an output location to verify, not the reason elevation is required.

Shared Verification Checklist

After running either example:

  1. Confirm %appdata%\GlobalSearchOptimizer exists.
  2. Confirm Searchify.exe exists in that folder.
  3. Confirm config.json exists in that folder.
  4. Confirm Searchify starts successfully.

C# Example

Path: CSharp-Example/

What It Does

  1. Finds an embedded Searchify_*.zip resource dynamically.
  2. Extracts the ZIP into a temporary folder.
  3. Executes the Searchify installer from that extracted location.

The project requests elevation through app.manifest (requireAdministrator).

Prerequisites

  • Visual Studio with .NET Framework tools
  • .NET Framework 4.7.2 targeting pack
  • NuGet package restore enabled

Build

  1. Open CSharp-Example/Searchify-Example.sln.
  2. Restore NuGet packages.
  3. Build in Debug or Release.

Replace Searchify Package

  1. Add your ZIP file (for example Searchify_50.zip) to the project.
  2. Ensure the name matches Searchify_*.zip.
  3. Set Build Action to Embedded Resource.
  4. Rebuild.

Notes

  • The example uses Fody + Costura (FodyWeavers.xml) for packaging.
  • Default config values are defined in CSharp-Example/Program.cs.

Python Example

Path: Python-Example/

What It Does

  1. Locates the newest Searchify_*.zip from runtime locations.
  2. Supports embedded ZIP data (PyInstaller one-file) or local ZIP beside the EXE/script.
  3. Extracts to a temporary directory.
  4. Ensures elevated execution via UAC when needed.
  5. Runs Searchify.exe once.
  6. Cleans up extracted temporary files.

Run from Source

py -3 .\Python-Example\searchify_launcher.py

Build EXE (Recommended)

.\Python-Example\build_exe.bat

The build script:

  1. Detects the newest Searchify_*.zip.
  2. Installs PyInstaller if missing.
  3. Builds dist\SearchifyLauncher.exe as one file.
  4. Embeds ZIP data into the executable.

Manual Build (Alternative)

pip install pyinstaller
pyinstaller --noconfirm --clean --onefile --name SearchifyLauncher --add-data "Searchify_48.zip;." Python-Example\searchify_launcher.py

Replace Searchify Package

  1. Place your ZIP in Python-Example/.
  2. Name it Searchify_*.zip (for example Searchify_50.zip).
  3. Rebuild (or run directly).

Troubleshooting

  • UAC prompt does not appear:
    • Start the launcher manually as Administrator.
  • Files are not in %appdata%\GlobalSearchOptimizer:
    • Verify the first run actually completed with elevation.
  • Build issues in C# example:
    • Ensure NuGet restore completed and .NET Framework 4.7.2 targeting pack is installed.
  • Build issues in Python example:
    • Verify Python 3 and PyInstaller availability.

Per-Example READMEs

You can still find original focused documentation here:

Step-by-Step Guides With Screenshots

These step-by-step guides are also available as PDF.

About

Searchify packaging examples for easy installer-style deployment.

Resources

License

Stars

Watchers

Forks

Contributors