Попытка контролировать открытое приложение, вместо этого открывать новое приложение
Было сложно сделать название, которое имело смысл.
Поэтому я работаю с SalesLogix CRM и пытаюсь перейти к контакту в указанной CRM. Saleslogix позволяет использовать почти как URL, который выглядит как slx:CONTACT//C6UJ9A006S96
Эта строка будет направлять CRM к контакту с этим идентификатором.
Моя проблема в том, что когда я пытаюсь перейти к этому URL, я открываю новый экземпляр SalesLogix вместо того, чтобы использовать текущий.
Saleslogix - это программное обеспечение для настольных компьютеров, предназначенное только для вашей информации.
Самым странным для меня является то, что если я использую Windows "Run..." из меню "Пуск" и вставляю slx:CONTACT//C6UJ9A006S96
тогда он будет использовать уже открытое приложение, то же самое с обычной командной строкой, однако, если я использую командную строку администратора, он откроет новый экземпляр SalesLogix. Я проверил диспетчер задач, и не имеет значения, открываю ли я его с помощью командной строки администратора или просто окна рабочего стола, он скажет, что он работает под моим текущим пользователем, а не системой или чем-то странным, так что, похоже, пользователь не эта проблема.
Мой код:
Process[] processes = Process.GetProcesses();
foreach (Process p in processes)
{
if (p.ProcessName == "SalesLogix")
{
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.FileName = @"C:\Program Files (x86)\SalesLogix\SalesLogix.exe";
p.StartInfo.Arguments = "slx:CONTACT//C6UJ9A006S96";
p.Start();
}
}
Буду признателен за любую помощь, и если я не объясню свою проблему достаточно четко, я буду рада устранить любую путаницу.
2 ответа
Попробуйте запустить URL напрямую. Например, не выполняйте SalesLogix exe, просто передайте URI в качестве имени файла и позвольте обработчику протокола Windows позаботиться об этом.
Я думаю, что вы делаете здесь, берете процесс, который уже запущен, переписываете его параметры и запускаете все заново. Вы пытались просто вызвать новый процесс с этими параметрами, чтобы увидеть, будет ли он подключаться к существующему системному процессу?