2011-09-05 66 views
3

我有一个Windows应用程序(WPF),我们在每次登录时都运行该应用程序,但是当用户首次登录到新PC时,应用程序需要执行一些操作具体的任务,但只限于用户的第一次登录,而不会在后续时间。能够检测这是否是用户首次登录到Windows 7

在.net 3.5中有没有办法查询用户之前登录过的帐户(即某种登录次数)?

未能获得任何本地支持我将在用户注册表中创建一个txt文件,但是我想知道是否有本地方式来实现这一点。

我们使用重定向的文件夹,因此用户可能已经登录到我们网络中的PC上,这些特殊事件应该只发生在用户未登录到PC上并且Windows必须为用户创建新配置文件时PC。

如果我不清楚我正在寻求什么,请不要犹豫让我知道。

马特

+1

我推荐你用你的替代技术。它提供了一种轻松的方式来重新执行操作,而无需重新创建用户。我也会将其作为App.Config值或其用户配置文件下的某个文件而不是注册表值。这很容易支持或批处理脚本,并且使用户不会害怕他们的机器会爆炸。虽然远程注册表访问可能比远程文件访问更容易,但如果您不得不执行远程故障排除。通过组策略混淆也可能更容易。我会考虑这两种解决方案及其支持含义...... –

+0

嗨Merlyn,如果您想将其作为答案,我会接受它,因为这是我的解决方案。 – Lima

+0

完成:)由于我在答案中详细阐述了一点,让我知道你是否喜欢它,或者比评论还要少,或者是否令人困惑。 –

回答

2

失败的任何本地支持我会在用户注册表中创建一个txt文件,但是我想知道是否有一种本地方式实现这一点。

我建议使用此选项。不要试图检测它,只是在第一次运行时创建自己的状态。

我认为这并不是因为技术上不可能实现您描述的功能,而是因为它是一种更好的用户体验。它提供了一种轻松的方式来重新执行操作,而无需重新创建用户。

...在用户注册表中的txt文件...

我不知道这意味着什么。您可以在用户的​​配置文件目录下创建文本文件,并且可以在注册表中插入字符串值(但不包括任何类型的文件)。

至于具体的机制,我建议你考虑:

  • 一个app.config值。清除该值比注册表值更容易支持或批处理脚本,并且使用户不必担心他们的计算机会爆炸,如果您必须告诉他们编辑设置。用户害怕注册表。
  • 在用户个人资料目录下的哨兵文本文件。擦除文件非常容易支持和批处理脚本。而不是编辑一个文本文件,他们可以删除一个。但是这使得它有多个配置机制,因此有多个失败点。如果我在程序中使用App.Config进行其他设置,并且认为用户技术不足以手动编辑它,我只会这样做。
  • Windows注册表。如果您必须执行远程故障排除,则远程注册表访问可能比远程文件访问更容易。如果这是一个Intranet应用程序,并且您需要强制重新运行组织中的所有计算机,那么通过组策略混淆也可能更容易。

在提交之前,我会仔细考虑我的选项以及哪些最可能缓解支持(我的用户可以理解)。我还会考虑远程故障排除/远程重置方案。

+0

感谢Merlyn,我结束了用户AppData文件中的一个文件,并最终使用文件来轻松区分已处理与否的任务。该文件方法允许我们的支持人员轻松删除文件并重新运行应用程序,然后再重新处理该任务。 – Lima

1

这可能不是你要找的内容,但我希望它会帮助你啦..我不知道从我的头顶如何在WPF做到这一点,但我做的知道您可以使用“unattend.xml”文件和FirstLogonCommands在首次登录时执行脚本或应用程序。我已经使用这个在Windows 7中,它可能不适用于XP。

+0

不幸的是,这不适合我们的环境。感谢你的协助。 – Lima