程序在vb.net启动时运行时读取DB的问题

时间:2013-06-23 02:30:33

标签: vb.net

我是新来的vb.net而且我遇到了一些我认为应该很容易解决的问题。我设置我的程序让用户决定他或她是否希望在Windows启动时运行该程序。它实际上工作正常,因为它将注册表值分配给CurrentUser而不是Local Machine,因为需要绕过管理员权限。但是,当我重新启动计算机时,程序正常启动,但它不会读取与程序位于同一文件夹中的访问数据库;它试图从Windows \ System32读取数据库。

有没有办法强制它从可执行路径而不是System32读取?

以下是我的简单代码:

  Private Sub startup()

        If cbStartup.Checked = True Then

            My.Computer.Registry.CurrentUser.OpenSubKey("Software").OpenSubKey("Microsoft").OpenSubKey("Windows").OpenSubKey("CurrentVersion").OpenSubKey("Run", True).SetValue("CC_List", System.Windows.Forms.Application.ExecutablePath)

        ElseIf cbStartup.Checked = False Then

            My.Computer.Registry.CurrentUser.OpenSubKey("Software").OpenSubKey("Microsoft").OpenSubKey("Windows").OpenSubKey("CurrentVersion").OpenSubKey("Run", True).DeleteValue("CC_List", False)

        End If

    End Sub

1 个答案:

答案 0 :(得分:0)

因此,当操作系统启动您的程序时,当前目录%windir%\System32

您需要将所有现有路径调整为明确相对于Application.ExecutablePath,或者将

My.Computer.FileSystem.CurrentDirectory = My.Application.Info.DirectoryPath

在您的计划开始时(这是ChDir ...的现代版本)。