我想开发一个托盘应用程序。这应该做的是它必须继续寻找最近修改过的文件..一旦文件被抓到它,该文件的副本到Web服务器。因此,用户将能够登录该网站,以后用户将能够下载这些备份文件。我想知道的是我如何开发托盘应用程序?我必须为此编写Windows服务吗?如果是这样,我需要托盘应用程序来控制服务(托盘应用程序必须具有启动和停止服务的功能[备份服务],选择文件扩展名的选项) 我正在使用c#。 非常感谢。
答案 0 :(得分:0)
我个人不会像Windows Service
那样,但会选择一个“生活”在系统后面的简单应用程序。它更容易维护和更新,从客户端卸载(根据他的要求)。简而言之,对于简单的事情,我不会选择Windows服务。
我会添加一个sys-tray组件,带有一些菜单。 你可以看一下Philipp Sumi的WPF NotifyIcon。
其中一个菜单项可以包含一个注册可执行文件的项目,以便在启动操作系统时运行。 你可以通过一些代码来实现这个目标:
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
Assembly curAssembly = Assembly.GetExecutingAssembly();
key.SetValue(curAssembly.GetName().Name, curAssembly.Location);
如果由于某种原因,导致您的帖子不太清楚,您的应用程序确实会在相当大的生产环境中管理大量数据,请转到WindowsService并管理与其相关的所有内容。
希望这有帮助。
答案 1 :(得分:0)
听起来很简单。
创建一个基本的WinForms应用程序。应用程序的主窗口应该开始“最小化”,不应该显示在任务栏中。但是,它应该有一个“NotifyIcon”组件,它允许应用程序显示在系统托盘中。双击NotifyIcon将恢复窗口,在任务栏中显示窗口并隐藏NotifyIcon,直到窗口最小化或再次关闭。
此应用程序可以自行查看文件,也可以编辑Windows服务使用的配置;无论哪种方式都可行。无论哪种方式,您都需要设置一个FileSystemWatcher(或其中几个)来监视用户希望您检查的目录中的文件。当FileSystemWatcher看到文件更改时,它将通过执行上传到Web服务器来触发您可以处理的事件。
除了整个设计之外;如果你正在实现一个在线备份系统(看起来你是这样),我会确保用户可以访问该文件的几个过去的迭代,以防他们想要恢复以前的版本。你也应该进行病毒检查;用户需要的最后一件事是病毒破坏他们的文件并且备份系统备份了已损坏的文件。