Overview
Gravity integrates deeply with the Windows shell to provide frictionless access from anywhere in the filesystem.
Send To Menu
Creates a shortcut in %APPDATA%\Microsoft\Windows\SendTo\Gravity.lnk so users can right-click → Send to → Gravity.
Single-Instance IPC
Uses a named Mutex + named pipe to ensure only one instance runs. Subsequent launches forward their command-line arguments to the running instance via IPC.
// Program.cs - Single instance pattern
static Mutex _mutex = new(true, "Global\\GravityAppSingleInstance", out bool createdNew);
if (!createdNew)
{
// Send args to existing instance via named pipe
using var client = new NamedPipeClientStream(".", "GravityIPC", PipeDirection.Out);
client.Connect(1000);
using var writer = new StreamWriter(client);
writer.WriteLine(string.Join(" ", args));
return 0;
}
// ... run app
// Named pipe server listens for incoming args
Task.Run(() => ListenForIpc());