2015-11-26 2 views
0

Я сейчас преподаю (с помощью SO & Google) VB.Net для создания пусковой установки для многопользовательского мод, и мне нужно, чтобы пользователи при первом запуске моего приложения вводили туда, где их папка сохраняется, до сих пор у меня есть;Как сохранить/вспомнить Folderbrowserdialog SelectedPath

Dim folderDlg As System.Windows.Forms.FolderBrowserDialog 
    folderDlg = New System.Windows.Forms.FolderBrowserDialog 
    folderDlg.Description = "Please select your multiplayer folder" 


    If My.Settings.isFirstRun Then 
     My.Settings.isFirstRun = False 
     My.Settings.Save() 
     folderDlg.ShowDialog() 
    Else 

    End If 

Кнопка для запуска мод самого

Private Sub Launch_mp_Click(sender As Object, e As EventArgs) Handles Launch_mp.Click 
    If My.Computer.FileSystem.FileExists("launcher.exe") Then 
     Process.Start("launcher.exe") 
     Timer2.Interval = 1000 
     Timer2.Start() 
    End If 
End Sub 

Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick 
    p = Process.GetProcessesByName("eurotrucks2") 
    If p.Count > 0 Then 
     Timer2.Stop() 
     Me.WindowState = FormWindowState.Minimized 
     Me.Visible = True 
    Else 
    End If 
End Sub 

Я запутался, как я могу хранить пользователь выбранного путь и затем вызвать его в дальнейшем для кнопки, не всегда прошу реж ,

ответ

1

Вы почти там:

У вас есть различные варианты, где хранить данные: в реестре, в старом стиле с помощью INI-файлов или в конфигурационном файле приложения. Я бы предложил использовать файл конфигурации, так как вы уже сохранили isFirstRun-varialbe в конфиге. В разработчике проекта посмотрите папку «Мой проект» и дважды щелкните элемент «Настройки». Добавьте параметр строки типа «ModFolder». После этого вы сможете получить доступ к значению этого параметра, используя параметр My.Settings.ModFolder varialbe (см. here).

Используйте FolderBrowserDialog для хранения папки (см here)

if folderDlg.ShowDialog() = DialogResult.Ok then 
    My.Settings.ModFoler = folderDlg.SelectedPath 
    My.Settings.Save 
end if 

Когда приложение запускается в следующий раз, когда ModFolder переменной будет automaticall удерживать значение, сохраненное таким образом вместо If My.Settings.isFirstRun Then я хотел бы проверить:

If File.Exists(Path.Combine(My.Settings.ModFolder, "AppToStart.Exe")) then 
... 
end if 

Если файл существует, запустите его, если не повторно отобразить диалоговое окно, чтобы выбрать папку.

+0

Большое вам спасибо! :) – Kyt2015

Смежные вопросы