从WPF应用程序向另一个WPF应用程序传递参数?

3
我有两个独立的WPF(c#)应用程序,分别是Project A和B。它们是分开开发的。我已经使用Project A中的按钮将这些项目连接起来,点击该按钮后,我使用Process.start();启动Project B。
现在我需要传递字符串(登录)参数到另一个应用程序(B),以便用户无需重新登录。我已经了解了命令行参数传递,但我不想使用它们。同时,Application.Current.Properties["parameterStringID"]也没有用,因为我有不同的app.config文件用于A和B。
是否有任何方法可以实现这一点?

3
为什么不使用命令行参数?这很有效。 - Nahum
@NahumLitvin:感谢您的帮助!也许命令行可以工作,但我想知道是否有其他方法来完成这个任务? - Avinash patil
但我不认为那对我有效。你能解释一下你为什么这样认为吗? - dovid
@lomed:现在好了,朋友。我不想使用它们。非常抱歉,但我不能解释为什么它对我没用。 - Avinash patil
3个回答

2
您可以像这样向您的应用程序发送命令行参数。
var applicationPath = "Path to application B exe";
var process = new Process();
process.StartInfo = new ProcessStartInfo(applicationExePath);
process.Arguments = "/login=abc /password=def";
process.Start();

在你的ApplicationB启动时,处理命令行参数。


正如我在问题中所说,它们可能对我不起作用(请把它视为特例)。:( 很抱歉兄弟,我想知道另一种方法。感谢您的帮助! - Avinash patil
1
另一种方法是通过发送Windows消息,或者可以使用WCF服务。 - fhnaseer
我需要为那个创建另一个应用程序吗?比如WCF服务应用程序或Windows服务应用程序。 - Avinash patil
你也可以创建另一个应用程序。但是你也可以使用当前的应用程序来托管服务本身。你可以制作一个P2P应用程序。 - fhnaseer
1
这是一个示例聊天客户端,应用程序可以相互通信。您可以使用此参考在您的应用程序中实现相同的功能。 - fhnaseer

1

我过去曾通过使用匿名管道或命名管道来解决这个问题,.NET对它们有很好的支持。在MSDN网站上有几篇很好的文章介绍它们。


谢谢帮助!你有它的示例代码吗?这样我可以更好地理解。你可以发帖吗? - Avinash patil
1
如果您查看我发布的链接中的子文章,您将会发现它们都包含服务器端和客户端的完整源代码 - Mark Feldman

1

是的,我的应用程序也有类似的登录服务(WCF)。我明白你的意思。但是再次调用登录服务需要登录参数。那么这些参数怎么办? - Avinash patil
1
创建另一个函数。 将其命名为 IsUserLoggedIn。 在调用 Login 之前先调用它。 - Nahum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接