将文本信息传递给WPF“;气球“;窗口

将文本信息传递给WPF“;气球“;窗口,wpf,window,Wpf,Window,当我批量运行的命令行应用程序出现错误时,我希望能够启动一个“气球”类型的窗口。我正在考虑创建一个WPF可执行文件,并将要显示在其命令行上的消息传递给它 我能在它的命令行上输入Unicode字符吗 有人能提出一种不同的方法,将要显示的文本传递到外部可执行文件/DLL中的WPF窗口吗 [请求更多详细信息] 本质上,我正在寻找一种简单的方法来启动一个包含一些消息的窗口,而这些消息将来自没有UI的可执行文件(windows服务、ommand行工具)。我正在考虑在命令行上用消息调用WPF应用程序,如下所示

当我批量运行的命令行应用程序出现错误时,我希望能够启动一个“气球”类型的窗口。我正在考虑创建一个WPF可执行文件,并将要显示在其命令行上的消息传递给它

我能在它的命令行上输入Unicode字符吗

有人能提出一种不同的方法,将要显示的文本传递到外部可执行文件/DLL中的WPF窗口吗

[请求更多详细信息] 本质上,我正在寻找一种简单的方法来启动一个包含一些消息的窗口,而这些消息将来自没有UI的可执行文件(windows服务、ommand行工具)。我正在考虑在命令行上用消息调用WPF应用程序,如下所示:
NotificationBalloon.exe“这是要显示的消息”

但这不支持unicode字符。我正在寻找一种更好的方法将消息传递到NotificationBalloon.exe

不,您不能在命令行上传递unicode字符,否则会有被损坏的风险。将包含文本的临时文件的路径传递给它(或者,如果您想喜欢,可以使用管道)

您可以让您的
NotificationBalloon.exe在执行时从标准输入读取unicode字符串,并在生成时使用输入重定向:

public void Foo()
{
    SpawnBalloon("Whatever you want, this can be UNICODE as well.");
}

private void SpawnBalloon(string message)
{
    ProcessStartInfo psi = new ProcessStartInfo("NotificationBalloon.exe")
    {
        RedirectStandardInput = true
    };
    var process = Process.Start(psi);
    process.StandardInput.Write(message);
    process.StandardInput.Flush(); // Might not be necessary if AutoFlush is true
}

最后,我在命令行上传递UTF-16值,并将其转换为main()函数中的字符串。例如:

NotifWindow.exe 00480065006c006c006f0021

将打印“Hello!”

您能更详细地回答您的问题吗?