Открытие приложения по ссылке в браузере
Делаю winform приложение. Мне нужно чтобы на сайте можно было встроить ссылку при нажатии на которую будет открываться мое приложение. Я нашел в интернете решение с URI и примеры для консольного приложения. Как я понял надо встроить ссылку на сайт, внести данные в реестр и тд. Но я не понял как передавать данные самому приложению (например данные о пользователе). Объясните пожалуйста как это должно работать, что добавить в само winform приложение и в ссылку чтобы передавать данные приложению.
Код тестового приложения на виндформ:
static string ProcessInput(string s)
{
// TODO Verify and validate the input
// string as appropriate for your application.
return s;
}
public Form1()
{
InitializeComponent();
string ab;
ab = "";
string[] args = new string[100];
foreach (string s in args)
{
ab += Convert.ToString(ProcessInput(s));
}
textBox4.Text = ab;
}
Ссылка:
<a href="prog:"> Open folder </a>
[HKEY_CLASSES_ROOT\prog]
@="URL:prog Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\prog\shell]
[HKEY_CLASSES_ROOT\prog\shell\open]
[HKEY_CLASSES_ROOT\prog\shell\open\command]
@="\"C:\\Program Files\\winform\\WinFormsApp1.exe\" \"%1\"\""
Ответы (1 шт):
Берете любую строчку
Например
Hello world!
Кодируете ее в Base64, используйте исходный текст в кодировке UTF-8
SGVsbG8gd29ybGQh
подставляете в ссылку
<a href="prog:SGVsbG8gd29ybGQh"> Open folder </a>
В приложении получаете аргументы
string[] args = Environment.GetCommandLineArgs();
if (args.Length > 0)
{
string commandCode = args[^1]; // prog:SGVsbG8gd29ybGQh
if (commandCode.StartsWith("prog:"))
{
string command = Encoding.UTF8.GetString(Convert.FromBase64String(commandCode.Split(':')[1])); // Hello World!
MessageBox.Show(command);
}
}
Не используйте коструктор формы для написания своего кода. Используйте вместо этого обработчик события формы Form.Load