我正在教自己(在SO& Google的帮助下)VB.Net为多人游戏mod创建一个启动器,我需要用户在第一次启动我的应用程序时输入他们的文件夹存储位置,到目前为止我有;
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
运行mod本身的按钮
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
我很困惑如何存储用户选择的路径,然后稍后再调用该按钮而不总是要求dir。
答案 0 :(得分: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变量将自动保存存储的值,而不是If My.Settings.isFirstRun Then
我会检查:
If File.Exists(Path.Combine(My.Settings.ModFolder, "AppToStart.Exe")) then
...
end if
如果文件存在则启动它,如果没有重新显示该对话框则选择该文件夹。