0

可能重复:
使用 .NET 编写 Windows 系统托盘应用程序

我想开发一个托盘应用程序。这应该做的是它必须继续寻找最近修改的文件。一旦文件被捕获,它就会将该文件的副本复制到 Web 服务器。因此,用户将能够登录网站,稍后用户将能够下载这些备份文件。我想知道的是如何开发托盘应用程序?我必须为此编写一个Windows服务吗?如果是这样,我需要一个托盘应用程序来控制服务(托盘应用程序必须具有启动和停止服务 [备份服务] 的功能,一个选择文件扩展名的选项)我正在使用 c#。提前非常感谢。

4

2 回答 2

0

我个人不会让它像一个Windows Service,但会选择一个简单的应用程序“生活”在系统后面。更容易维护和更新,从客户端卸载(根据他的要求)。简而言之,对于一些简单的事情,我不会选择 Windows 服务。

我会添加一个带有一些菜单的系统托盘组件。您可以查看 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 并管理所有与它相关的东西。

希望这可以帮助。

于 2012-04-04T19:50:46.920 回答
0

听起来很简单。

创建一个基本的 WinForms 应用程序。应用程序的主窗口应该开始“最小化”并且不应该显示在任务栏中。但是,它应该有一个“NotifyIcon”组件,它允许应用程序显示在系统托盘中。双击 NotifyIcon 将恢复窗口,在任务栏中显示窗口并隐藏 NotifyIcon,直到窗口最小化或再次关闭。

此应用程序可以自己进行文件监视,也可以编辑 Windows 服务使用的配置;无论哪种方式都可以。无论哪种方式,您都需要设置一个 FileSystemWatcher(或其中几个)来监视用户希望您检查的目录中的文件。当 FileSystemWatcher 看到文件更改时,它会触发一个事件,您可以通过执行上传到 Web 服务器来处理该事件。

就像整个设计的旁白一样;如果您正在实施一个在线备份系统(您似乎是这样),我会确保用户可以访问该文件的几次过去迭代,以防他们想要恢复以前的版本。您还应该进行病毒检查;用户需要做的最后一件事是让病毒破坏他们的文件,并让您的备份系统备份被破坏的文件。

于 2012-04-04T19:55:42.470 回答