如何使用c#向我的客户端应用程序发送消息

时间:2011-11-26 10:39:17

标签: c# winforms message

我创建了一个应用程序。

我通常会在我的申请中进行更改。

但是那些接受我申请的人需要知道我已经更新了我的

应用。

我无法打电话给所有人并说我已更新我的申请表,可以下载

来自我的网站。

我想使用c#向客户端应用程序发送消息。

我不知道如何发送它以及如何接收它。

如果有人帮助我,我们将非常感激。

提前致谢。

2 个答案:

答案 0 :(得分:2)

您可以在数据库中创建一个包含最新版本应用程序的表(如果您的应用程序正在使用它,如果没有 - 文件,如XML,就足够了),并使您的应用程序检查加载,如果用户版本是从数据库中降低一个。如果是这样:显示链接信息,“新版本可用,请从...下载”

答案 1 :(得分:0)

你可能会把你的应用程序放到网上下载吗?然后也把版本文件。

您的应用可以自动将在线版本文件与其版本进行比较,然后通知用户或自动下载更新的版本。

static public class Deployment
{
    public static readonly string WebSite = @"....";
    public const string version_filename = "version";

    static string get_version(Stream stream)
    {
        var lines = new List<string>();

        var reader = new StreamReader(stream);

        while (true)
        {
            var s = reader.ReadLine();
            if (s == null)
                break;

            lines.Add(s);
        }

        stream.Close();

        return lines.Join(CHAR.LineFeed).Trim();
    }
    static string GetWebVersionInfo()
    {
        try
        {
            var client = new WebClient();
            using (var stream = client.OpenRead(WebSite + version_filename))
                return get_version(stream);
        }
        catch
        {
            return null;
        }
    }
    static string GetLocalVersionInfo()
    {
        try
        {
            using (var stream = new FileStream(System.IO.Path.GetDirectoryName(ProgramInfo.FilePath) +
                                               System.IO.Path.DirectorySeparatorChar +
                                               version_filename, FileMode.Open, FileAccess.Read))
                return get_version(stream);
        }
        catch
        {
            return null;
        }
    }
    static public bool IsNewVersionAvailable()
    {
        var web_version = Deployment.GetWebVersionInfo();
        var exe_version = Deployment.GetLocalVersionInfo(); 

        return (web_version != null && (exe_version == null || exe_version.Comparison(web_version) == CompareEnum.Less));
    }

}

它不会马上编译,因为这里缺少一些琐碎的符号,但你有理由我希望。