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

时间:2017-07-21 13:01:15

标签: c# process saleslogix

很难做出有意义的标题。

所以我正在使用SalesLogix CRM并尝试导航到所述CRM中的联系人。 Saleslogix允许您使用几乎类似于slx:CONTACT//C6UJ9A006S96

的网址

该行将指示CRM与该ID的联系。

我的问题是,当我尝试导航到该URL时,我打开一个新的SalesLogix实例,而不是使用当前的实例。

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

对我来说,奇怪的是,如果我使用Windows' '运行...'从开始菜单放入slx:CONTACT//C6UJ9A006S96然后它将使用已打开的应用程序,与正常的命令提示符相同,但是如果我使用Admin命令提示符,它将打开SalesLogix的新实例。我检查了任务管理器,如果我使用管理命令提示符或只是桌面窗口打开它并不重要,它会说它在我当前的用户下运行而不是系统或任何奇怪的东西,所以看起来用户不是#39;问题。

我的代码是:

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 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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