VB.NET:在应用程序的生命周期中只运行一次方法

时间:2010-02-10 14:13:52

标签: vb.net desktop-application

我正在制作一个图书馆类型的应用程序,它需要在第一次运行时扫描整个计算机。永远不会。我怎么能完成它?

我将使用SQL数据库来存储数据。所以,我可以很容易地在那里制作一个表并存储一个标志并在第一次运行时检查它,但还有其他方法吗?在VB.NET中对此有任何原生支持吗?

5 个答案:

答案 0 :(得分:6)

使用

Deployment.Application.ApplicationDeployment.CurrentDeployment.IsFirstRun

My.Application.Deployment.IsFirstRun

编辑:

检查this article以获取更多信息。

答案 1 :(得分:2)

我找到了使用appsettings的最佳方式..

答案 2 :(得分:1)

编辑:如果您正在寻找一种方法来确定,使用VB.NET的一些原生功能,方法是否 之前(如去年),我认为你运气不好。也就是说,一种快速而肮脏的方法可能是定义一种方法来查询数据库中您所引用的标志,并将该方法的结果存储在静态标志中。

Public Sub MethodToRunOnlyOnce()
    ' this flag will maintain its value between method calls '
    ' in the same session '
    Static methodAlreadyRun As Boolean = MethodHasBeenRun()

    If methodAlreadyRun Then
        Exit Sub
    End If

    Try
        ' ... code ... '
    Finally
        MethodToSetDatabaseFlag()
        methodAlreadyRun = True
    End Try
End Sub

Private Sub MethodToSetDatabaseFlag()
    ' code here to set Db flag '
End Sub

Private Function MethodHasBeenRun() As Boolean
    ' code here to check Db flag '
End Function

答案 3 :(得分:1)

使用SQL数据库似乎是一个可行的解决方案。如果您不想使用表来保存它,也可以在文件系统上的设置文件中写入标志。这是一个非常好的网站,有一些关于如何写入文件的例子。

http://www.freevbcode.com/ShowCode.asp?ID=4492

答案 4 :(得分:1)

您始终可以将此标志存储在xml文件或注册表中,以便它在PC上。如果将它存储在数据库中并且在不同的PC上运行该程序的多个副本,则必须以某种方式在数据库中识别它们,而如果您在本地跟踪它,则无需担心它。 / p>