意味が合ったタイトルを作るのは難しかったです。開いているアプリケーションを制御しようとする代わりに、新しいアプリケーションを開く
私はSalesLogix CRMを使用しており、CRMの連絡先に移動しようとしています。 Saleslogixを使用すると、ほぼ同じようなURLのように使用できますslx:CONTACT//C6UJ9A006S96
この行はCRMをそのIDの連絡先に誘導します。
私の問題は、現在のURLを使用する代わりに、そのURLにナビゲートして新しいSalesLogixインスタンスを開くときです。
Saleslogixは、あなたの情報のためのデスクトップベースのソフトウェアです。
私にとって奇妙な部分は、スタートメニューからWindowsの「実行...」を使用してslx:CONTACT//C6UJ9A006S96
を入力すると、通常のコマンドプロンプトと同じ、すでに開いているアプリケーションを使用しますが、使用するとAdminコマンドのプロンプトが表示されると、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();
}
}
任意の助けをいただければ幸いと私ははっきりと十分に私の問題を説明していなかった場合、私は任意の混乱を解消するために幸せになります。
シェル実行を使用してURLを直接実行しようとしましたか?同様に、SalesLogix exeを実行しないでください。Windowsのプロトコルハンドラが処理するようにしてください。あなたの質問については、実際には違いがあります。これが適切な用語であるかどうかは分かりませんが、管理者として実行すると、同じユーザーとして実行されているように見えますが、別のコンテキストでプロセスが実行されます。 – pcdev
それがうまくいくならば、おそらくコードループと設定値のすべてを必要としないでしょう。 'Process.Start(" slx:CONTACT/C6UJ9A006S96 ");'を試してみてください。 –
@Idle_Mindこれはまさに私がやったことです。 – Resistance