Попытка контролировать открытое приложение, вместо этого открывать новое приложение

Было сложно сделать название, которое имело смысл.

Поэтому я работаю с 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 позаботиться об этом.

Я думаю, что вы делаете здесь, берете процесс, который уже запущен, переписываете его параметры и запускаете все заново. Вы пытались просто вызвать новый процесс с этими параметрами, чтобы увидеть, будет ли он подключаться к существующему системному процессу?

Другие вопросы по тегам