GetInfo is a small Windows utility (C# / .NET) that collects and presents host and user information on Windows systems. The repository contains two primary components:
- Server: GetInfo — collects system and user metadata.
- Client: GetInfoGUI — a WPF desktop client used to request and display the gathered information.
This README was rebuilt from a codebase analysis and documents the core functionality, how to run and develop the project, and recommended cleanup and security improvements.
GetInfo gathers host- and user-related information on Windows machines (e.g., OS details, machine/user names, and other environment metadata) and exposes that information to a client application that displays it in a simple UI.
- Server (Server/GetInfo/GetInfo): Responsible for collecting system/user information. Historically includes forms resources and produces a GetInfo.exe in bin/ folders.
- Client (Client/GetInfoGUI/GetInfoGUI): WPF application with a MainWindow containing:
- A TextBox (text_ip) for the target IP/hostname.
- A Button wired to a click handler that initiates the request.
- A ListBox to show returned information.
Typical workflow:
- Start the server component on a host (or run locally).
- Launch the WPF client.
- Enter an IP or hostname in the text box (or use localhost).
- Click the button — the client sends a request to the server and displays the returned fields in the ListBox.
Note: The repository contains generated/obj files which confirm this structure but the exact transport (HTTP/TCP) and data format (JSON, plaintext) should be confirmed by inspecting the server and MainWindow code-behind files.
Prerequisites:
- Windows
- Visual Studio 2015+ (the project was created around VS2015)
- .NET Framework compatible with the projects (check project file for exact target)
Steps:
- Clone git clone https://github.com/ruhex/GetInfo.git cd GetInfo
- Open the solution (.sln) in Visual Studio.
- Restore dependencies (if any) and build the solution (Build → Rebuild Solution).
- Run:
- Start the server project (Server/GetInfo/GetInfo). This should produce/GetInfo.exe in the project's bin/Debug or bin/Release.
- Start the client GUI project (Client/GetInfoGUI/GetInfoGUI) — this launches a WPF window.
- In the GUI:
- Enter an IP or hostname (text_ip).
- Click the main button.
- Review results in the ListBox.
If you can't run from Visual Studio, run the produced executables from bin/Debug or bin/Release.
- text_ip: address of the target machine (or "localhost").
- Button: sends a request to the server and populates the ListBox with returned system/user info.
- ListBox: shows returned fields (one item per line).
If the UI freezes during a network call, open MainWindow.xaml.cs and ensure network calls run asynchronously (BackgroundWorker, Task.Run, or async/await) to keep the WPF UI responsive.
Inspect these locations to find the actual gather and transport code:
- Server code: Server/GetInfo/GetInfo/
- Look for Program.cs, Form1.cs, or other .cs files that implement system queries (Environment.*, WMI/ManagementObjectSearcher, Registry access, etc.).
- Look for networking code (HttpListener, TcpListener, Socket, WebClient, HttpWebRequest).
- Client code: Client/GetInfoGUI/GetInfoGUI/
- MainWindow.xaml — UI layout.
- MainWindow.xaml.cs — button_Click handler and client-side networking/serialization logic.
- App.xaml / App.xaml.cs — WPF entry point.
Search for terms in the codebase such as: "Environment.", "ManagementObjectSearcher", "HttpListener", "TcpClient", "Json", "ListBox", "button_Click".