Я новичок здесь и vb.net, и я застрял на чем-то, что, по моему мнению, ДОЛЖНО быть простым в разрешении. Я настраиваю свою программу, чтобы позволить пользователю решить, хочет ли он или она запускать программу при запуске Windows. Он действительно работает нормально, поскольку он назначает значение реестра CurrentUser вместо Local Machine из-за того, что права администратора должны быть обойдены. Однако, когда я перезагружаю компьютер, программа появляется, как обычно, но не будет читать мой доступ db, который находится в той же папке, что и программа; он пытается прочитать БД из Windows \ System32.Проблема с чтением БД при запуске программы при запуске vb.net
Есть ли способ заставить его читать из исполняемого пути вместо 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
«Выполняется при старте Windows» означает «перед тем, как кто-либо войдет в систему»? Когда вы устанавливаете значение, оно устанавливается в пространстве, принадлежащем зарегистрированному пользователю. Но если вы пытаетесь запустить его, когда никто не вошел в систему, я не уверен, что currentuser имеет значение вообще - я уверен, что он не будет таким же, как последний зарегистрированный пользователь. Возможно, вам больше повезло рассмотреть/опубликовать код, который открывает базу данных - посмотрите, можете ли вы получить System.Windows.Forms.Application.ExecutablePath там. – GregHNZ
Благодарим за отзыв. Однако «System.Windows.Forms.Application.ExecutablePath» находится в первой части инструкции «IF» в самом конце (это было то, что вы имели в виду?). :) И он имеет эту ошибку как с регистрацией пользователя, так и без него. Я уже пробовал это в обоих сценариях. Программа запускается нормально. Сценарий заключается в том, что он уже был установлен пользователем для автоматического запуска при загрузке Windows. У CurrentUser установлено значение, иначе программа не будет автоматически загружаться, правильно? Я также тестировал, что значение было там, когда я добавил его. –
не достаточно с Application.StartupPath? – matzone