试图控制打开的应用程序,而不是打开新的应用程序

Trying to control open application, instead opening new application

很难做出有意义的标题。

所以我正在使用 SalesLogix CRM 并尝试导航到所述 CRM 中的联系人。 Saleslogix 允许您使用看起来像 slx:CONTACT//C6UJ9A006S96

的 url

该行会将 CRM 定向到具有该 ID 的联系人。

我的问题是当我尝试导航到那个 url 我打开了一个新的 SalesLogix 实例而不是使用当前实例。

Saleslogix 是一款基于桌面的软件,仅供您参考。

对我来说奇怪的是,如果我从开始菜单使用 Windows' 'Run...' 并输入 slx:CONTACT//C6UJ9A006S96 那么它将使用已经打开的应用程序,与正常的命令提示符,但是如果我使用管理员命令提示符,它将打开一个新的 SalesLogix 实例。我检查了任务管理器,如果我使用管理员命令提示符或只是桌面 window 打开它并不重要,它会说它是 运行 在我当前的用户下而不是系统或任何奇怪的东西所以看来用户不是问题。

我的代码是:

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();
            }
        }

任何帮助将不胜感激,如果我没有足够清楚地解释我的问题,我很乐意消除任何混淆。

我认为您在这里所做的是采用已经 运行 的流程,重写其参数并重新启动它。您是否尝试使用这些参数简单地调用新进程以查看它是否会附加到现有系统进程?

直接尝试 运行 URL。同样,不要执行 SalesLogix exe,只需将 URI 作为文件名传递并让 Windows 协议处理程序处理它。