Skip to content

Latest commit

 

History

History
97 lines (65 loc) · 4.44 KB

File metadata and controls

97 lines (65 loc) · 4.44 KB


💾 About The Project

Winget Program Manager (Unstable)

⚠️ WARNING: This script is marked as unstable and is known to have issues or crash, as indicated by its filename. It is provided as a developmental example and is not recommended for general use.

This PowerShell script is an attempt to create a graphical user interface (GUI) that acts as a "Program Manager" for the Windows Package Manager (winget). Its intended purpose is to allow users to search for applications available through winget and install them from a user-friendly interface, without needing to use the command line directly.

The script uses advanced PowerShell concepts, including background jobs (Start-Job), to run winget operations asynchronously to prevent the GUI from freezing.

(back to top)

🔰 Getting Started

This script is a developmental example and is not guaranteed to be functional.

🕰️ Prerequisites

To attempt to run this script, you will need:

  • Windows Operating System.
  • PowerShell 5.1 or newer.
  • .NET Framework: Required for the Windows Forms GUI.
  • Windows Package Manager (winget): winget must be installed and accessible from your system's PATH.

💽 Installation & Execution

  1. Download: Download the CRASHES HiddenSettings.PS1 script file.
  2. Unblock: Right-click the file, go to Properties, and click Unblock if it was downloaded from the internet.
  3. Run: Execute the script from a PowerShell console.
    ."\CRASHES HiddenSettings.PS1"

(back to top)

🚀 Intended Usage

The intended functionality of the application is as follows:

  • Upon launch, the script is supposed to load all packages available via winget.
  • Users can type a search term in the search box and click Search to filter the list of programs.
  • The list view should display the Name, ID, Version, and Source of the available packages.
  • Users can select one or more programs from the list and click Install Selected to begin the installation process.

(back to top)

✨ Key Architectural Concepts

  • GUI Front-End: Uses Windows Forms to create a familiar program manager interface.
  • winget Wrapper: The script is designed to be a graphical wrapper around the winget search and winget install commands.
  • Asynchronous Operations: Attempts to use Start-Job to run the winget search command in the background to keep the UI from freezing. This is a complex operation and is a likely source of the script's instability.
  • Dynamic UI Updates: The script is intended to populate the list of programs with the results from the background job.

(back to top)

🛠️ Technology Stack

  • Scripting Language: PowerShell
  • GUI Framework: .NET Windows Forms (WinForms).
  • Backend: Windows Package Manager (winget).
  • Concurrency: PowerShell Jobs (Start-Job).

(back to top)

📐 Architecture & Security Notes

  • Unstable Code: This script is provided for educational or diagnostic purposes only. Its filename indicates it is prone to crashing. The use of background jobs, inter-thread communication (Invoke), and Invoke-Expression can lead to race conditions and unhandled exceptions.
  • Administrator Privileges: While not explicitly enforced with a self-elevation check, installing software via winget typically requires administrator rights.

(back to top)

🪪 License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

☎️ Contact

Zach Whiteman - elitesoftwarecolimited@gmail.com

HuggingFace - https://huggingface.co/EliteSoftware

HuggingFace (Personal) - https://huggingface.co/TheShadyRainbow

LinkTree - https://linktr.ee/zachrainbow

Patreon - https://www.patreon.com/c/EliteSoftwareCo

(back to top)