using System.Diagnostics; namespace Password_Manager { sealed public partial class MainForm : Form { public event DataRequest PathRequest; public MainForm(DataRequest PathRequest) { this.PathRequest = PathRequest; InitializeComponent(); ResultList.SearchQueryRequest += () => SearchBox.Text; ResultList.ReloadResults(); } private void ReloadResults(object? sender, EventArgs? e) //proxy method for SearchBox.TextChanged { ResultList.ReloadResults(); } private void OpenPasswordGenerator(object sender, EventArgs e) { GeneratePassword gp = new GeneratePassword(SearchBox.Text, PathRequest()); gp.ShowDialog(); } private void Decrypt(object sender, EventArgs e) { string fileName = ResultList.Text; try { Process proc = new Process() { StartInfo = new ProcessStartInfo { FileName = "gpg.exe", Arguments = $"--quiet --decrypt {PathRequest()}\\{fileName}", UseShellExecute = false, RedirectStandardOutput = true, CreateNoWindow = true } }; proc.Start(); while (!proc.StandardOutput.EndOfStream) { string line = proc.StandardOutput.ReadLine(); Clipboard.SetText(line); Process.Start("./ToastNotification.exe", $"\"{fileName} decrypted\" \"Password copied to clipboard\""); } } catch (Exception ex) { MessageBox.Show(ex.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }