diff --git a/GBM/Classes/clsGame.vb b/GBM/Classes/clsGame.vb index 4f61a34..79fc9d0 100644 --- a/GBM/Classes/clsGame.vb +++ b/GBM/Classes/clsGame.vb @@ -16,7 +16,6 @@ Private bEnabled As Boolean = True Private bMonitorOnly As Boolean = False Private bDuplicate As Boolean = False - Private sDOSBoxProcess As String = String.Empty Private bTempGame As Boolean = False Private oImportTags As New List(Of Tag) @@ -184,15 +183,6 @@ End Set End Property - Property DOSBoxProcess As String - Get - Return sDOSBoxProcess - End Get - Set(value As String) - sDOSBoxProcess = value - End Set - End Property - ReadOnly Property TruePath As String Get Return sPath @@ -300,15 +290,7 @@ 'Handle Duplicates sProcessName = Me.ProcessName If Me.Duplicate Then - If Me.ProcessName.Contains("dosbox") Then - If Me.ProcessName.Split(":").Length = 3 Then - sProcessName = Me.ProcessName.Remove(Me.ProcessName.LastIndexOf(":")) - Else - sProcessName = Me.ProcessName - End If - Else - sProcessName = Me.ProcessName.Split(":")(0) - End If + sProcessName = Me.ProcessName.Split(":")(0) End If Return sProcessName diff --git a/GBM/Forms/frmAddWizard.Designer.vb b/GBM/Forms/frmAddWizard.Designer.vb index 8a6224b..8d65e24 100644 --- a/GBM/Forms/frmAddWizard.Designer.vb +++ b/GBM/Forms/frmAddWizard.Designer.vb @@ -31,9 +31,6 @@ Partial Class frmAddWizard Me.txtName = New System.Windows.Forms.TextBox() Me.lblStep1Intro = New System.Windows.Forms.Label() Me.tbPage2 = New System.Windows.Forms.TabPage() - Me.lbldBox = New System.Windows.Forms.Label() - Me.btndBoxBrowse = New System.Windows.Forms.Button() - Me.txtdBoxProcess = New System.Windows.Forms.TextBox() Me.lblStep2Title = New System.Windows.Forms.Label() Me.lblStep2Instructions = New System.Windows.Forms.Label() Me.lblDrag2 = New System.Windows.Forms.Label() @@ -49,21 +46,10 @@ Partial Class frmAddWizard Me.txtSavePath = New System.Windows.Forms.TextBox() Me.lblStep3Intro = New System.Windows.Forms.Label() Me.tbPage3a = New System.Windows.Forms.TabPage() - Me.grpFileTypes = New System.Windows.Forms.GroupBox() - Me.optSpecificFile = New System.Windows.Forms.RadioButton() - Me.btnFileTypeBrowse = New System.Windows.Forms.Button() - Me.optFileType = New System.Windows.Forms.RadioButton() - Me.btnStep3aClear = New System.Windows.Forms.Button() Me.lblStep3aTitle = New System.Windows.Forms.Label() Me.lblStep3aInstructions = New System.Windows.Forms.Label() Me.txtFileTypes = New System.Windows.Forms.TextBox() Me.tbPage4 = New System.Windows.Forms.TabPage() - Me.grpExclude = New System.Windows.Forms.GroupBox() - Me.optExcludeSpecificFile = New System.Windows.Forms.RadioButton() - Me.btnExcludeBrowse = New System.Windows.Forms.Button() - Me.optExcludeFileType = New System.Windows.Forms.RadioButton() - Me.optExcludeFolder = New System.Windows.Forms.RadioButton() - Me.btnStep4Clear = New System.Windows.Forms.Button() Me.lblStep4Title = New System.Windows.Forms.Label() Me.lblStep4Instructions = New System.Windows.Forms.Label() Me.txtExcludeList = New System.Windows.Forms.TextBox() @@ -74,15 +60,20 @@ Partial Class frmAddWizard Me.btnCancel = New System.Windows.Forms.Button() Me.btnNext = New System.Windows.Forms.Button() Me.btnBack = New System.Windows.Forms.Button() - Me.optFileTypeFolder = New System.Windows.Forms.RadioButton() + Me.btnInclude = New System.Windows.Forms.Button() + Me.lblFileTypes = New System.Windows.Forms.Label() + Me.lblExclude = New System.Windows.Forms.Label() + Me.btnExclude = New System.Windows.Forms.Button() + Me.lblExcludePath = New System.Windows.Forms.Label() + Me.lblIncludePath = New System.Windows.Forms.Label() + Me.lblIncludePathTitle = New System.Windows.Forms.Label() + Me.lblExcludePathTitle = New System.Windows.Forms.Label() Me.tabWizard.SuspendLayout() Me.tbPage1.SuspendLayout() Me.tbPage2.SuspendLayout() Me.tbPage3.SuspendLayout() Me.tbPage3a.SuspendLayout() - Me.grpFileTypes.SuspendLayout() Me.tbPage4.SuspendLayout() - Me.grpExclude.SuspendLayout() Me.tbPage5.SuspendLayout() Me.SuspendLayout() ' @@ -166,9 +157,6 @@ Partial Class frmAddWizard 'tbPage2 ' Me.tbPage2.BackColor = System.Drawing.SystemColors.Control - Me.tbPage2.Controls.Add(Me.lbldBox) - Me.tbPage2.Controls.Add(Me.btndBoxBrowse) - Me.tbPage2.Controls.Add(Me.txtdBoxProcess) Me.tbPage2.Controls.Add(Me.lblStep2Title) Me.tbPage2.Controls.Add(Me.lblStep2Instructions) Me.tbPage2.Controls.Add(Me.lblDrag2) @@ -182,32 +170,6 @@ Partial Class frmAddWizard Me.tbPage2.TabIndex = 1 Me.tbPage2.Text = "TabPage2" ' - 'lbldBox - ' - Me.lbldBox.AutoSize = True - Me.lbldBox.Location = New System.Drawing.Point(184, 18) - Me.lbldBox.Name = "lbldBox" - Me.lbldBox.Size = New System.Drawing.Size(52, 13) - Me.lbldBox.TabIndex = 14 - Me.lbldBox.Text = "DOS File:" - ' - 'btndBoxBrowse - ' - Me.btndBoxBrowse.Location = New System.Drawing.Point(322, 14) - Me.btndBoxBrowse.Name = "btndBoxBrowse" - Me.btndBoxBrowse.Size = New System.Drawing.Size(27, 20) - Me.btndBoxBrowse.TabIndex = 13 - Me.btndBoxBrowse.Text = "..." - Me.btndBoxBrowse.UseVisualStyleBackColor = True - ' - 'txtdBoxProcess - ' - Me.txtdBoxProcess.AllowDrop = True - Me.txtdBoxProcess.Location = New System.Drawing.Point(244, 14) - Me.txtdBoxProcess.Name = "txtdBoxProcess" - Me.txtdBoxProcess.Size = New System.Drawing.Size(72, 20) - Me.txtdBoxProcess.TabIndex = 12 - ' 'lblStep2Title ' Me.lblStep2Title.AutoSize = True @@ -347,8 +309,10 @@ Partial Class frmAddWizard 'tbPage3a ' Me.tbPage3a.BackColor = System.Drawing.SystemColors.Control - Me.tbPage3a.Controls.Add(Me.grpFileTypes) - Me.tbPage3a.Controls.Add(Me.btnStep3aClear) + Me.tbPage3a.Controls.Add(Me.lblIncludePathTitle) + Me.tbPage3a.Controls.Add(Me.lblIncludePath) + Me.tbPage3a.Controls.Add(Me.lblFileTypes) + Me.tbPage3a.Controls.Add(Me.btnInclude) Me.tbPage3a.Controls.Add(Me.lblStep3aTitle) Me.tbPage3a.Controls.Add(Me.lblStep3aInstructions) Me.tbPage3a.Controls.Add(Me.txtFileTypes) @@ -358,59 +322,6 @@ Partial Class frmAddWizard Me.tbPage3a.TabIndex = 3 Me.tbPage3a.Text = "TabPage4" ' - 'grpFileTypes - ' - Me.grpFileTypes.Controls.Add(Me.optFileTypeFolder) - Me.grpFileTypes.Controls.Add(Me.optSpecificFile) - Me.grpFileTypes.Controls.Add(Me.btnFileTypeBrowse) - Me.grpFileTypes.Controls.Add(Me.optFileType) - Me.grpFileTypes.Location = New System.Drawing.Point(17, 43) - Me.grpFileTypes.Name = "grpFileTypes" - Me.grpFileTypes.Size = New System.Drawing.Size(310, 47) - Me.grpFileTypes.TabIndex = 0 - Me.grpFileTypes.TabStop = False - Me.grpFileTypes.Text = "Choose any files or folders to include in the backup" - ' - 'optSpecificFile - ' - Me.optSpecificFile.AutoSize = True - Me.optSpecificFile.Location = New System.Drawing.Point(80, 19) - Me.optSpecificFile.Name = "optSpecificFile" - Me.optSpecificFile.Size = New System.Drawing.Size(82, 17) - Me.optSpecificFile.TabIndex = 2 - Me.optSpecificFile.TabStop = True - Me.optSpecificFile.Text = "Specific File" - Me.optSpecificFile.UseVisualStyleBackColor = True - ' - 'btnFileTypeBrowse - ' - Me.btnFileTypeBrowse.Location = New System.Drawing.Point(229, 16) - Me.btnFileTypeBrowse.Name = "btnFileTypeBrowse" - Me.btnFileTypeBrowse.Size = New System.Drawing.Size(75, 23) - Me.btnFileTypeBrowse.TabIndex = 3 - Me.btnFileTypeBrowse.Text = "Browse..." - Me.btnFileTypeBrowse.UseVisualStyleBackColor = True - ' - 'optFileType - ' - Me.optFileType.AutoSize = True - Me.optFileType.Location = New System.Drawing.Point(6, 19) - Me.optFileType.Name = "optFileType" - Me.optFileType.Size = New System.Drawing.Size(68, 17) - Me.optFileType.TabIndex = 1 - Me.optFileType.TabStop = True - Me.optFileType.Text = "File Type" - Me.optFileType.UseVisualStyleBackColor = True - ' - 'btnStep3aClear - ' - Me.btnStep3aClear.Location = New System.Drawing.Point(253, 93) - Me.btnStep3aClear.Name = "btnStep3aClear" - Me.btnStep3aClear.Size = New System.Drawing.Size(75, 23) - Me.btnStep3aClear.TabIndex = 5 - Me.btnStep3aClear.Text = "&Clear" - Me.btnStep3aClear.UseVisualStyleBackColor = True - ' 'lblStep3aTitle ' Me.lblStep3aTitle.AutoSize = True @@ -418,7 +329,7 @@ Partial Class frmAddWizard Me.lblStep3aTitle.Location = New System.Drawing.Point(13, 11) Me.lblStep3aTitle.Name = "lblStep3aTitle" Me.lblStep3aTitle.Size = New System.Drawing.Size(199, 20) - Me.lblStep3aTitle.TabIndex = 12 + Me.lblStep3aTitle.TabIndex = 0 Me.lblStep3aTitle.Text = "Choose Files to Backup" ' 'lblStep3aInstructions @@ -426,25 +337,28 @@ Partial Class frmAddWizard Me.lblStep3aInstructions.Location = New System.Drawing.Point(14, 126) Me.lblStep3aInstructions.Name = "lblStep3aInstructions" Me.lblStep3aInstructions.Size = New System.Drawing.Size(303, 56) - Me.lblStep3aInstructions.TabIndex = 11 + Me.lblStep3aInstructions.TabIndex = 5 Me.lblStep3aInstructions.Text = "Choose any file types, specific files or folders you wish to include in the back" & "up. You may choose multiple items to include. If you're unsure, go back a step" & " and choose to save the entire folder. " ' 'txtFileTypes ' - Me.txtFileTypes.Location = New System.Drawing.Point(18, 95) + Me.txtFileTypes.Location = New System.Drawing.Point(218, 14) Me.txtFileTypes.Name = "txtFileTypes" Me.txtFileTypes.ReadOnly = True - Me.txtFileTypes.Size = New System.Drawing.Size(229, 20) + Me.txtFileTypes.Size = New System.Drawing.Size(131, 20) Me.txtFileTypes.TabIndex = 4 Me.txtFileTypes.TabStop = False + Me.txtFileTypes.Visible = False ' 'tbPage4 ' Me.tbPage4.BackColor = System.Drawing.SystemColors.Control - Me.tbPage4.Controls.Add(Me.grpExclude) - Me.tbPage4.Controls.Add(Me.btnStep4Clear) + Me.tbPage4.Controls.Add(Me.lblExcludePathTitle) + Me.tbPage4.Controls.Add(Me.lblExcludePath) + Me.tbPage4.Controls.Add(Me.lblExclude) + Me.tbPage4.Controls.Add(Me.btnExclude) Me.tbPage4.Controls.Add(Me.lblStep4Title) Me.tbPage4.Controls.Add(Me.lblStep4Instructions) Me.tbPage4.Controls.Add(Me.txtExcludeList) @@ -454,70 +368,6 @@ Partial Class frmAddWizard Me.tbPage4.TabIndex = 4 Me.tbPage4.Text = "TabPage5" ' - 'grpExclude - ' - Me.grpExclude.Controls.Add(Me.optExcludeSpecificFile) - Me.grpExclude.Controls.Add(Me.btnExcludeBrowse) - Me.grpExclude.Controls.Add(Me.optExcludeFileType) - Me.grpExclude.Controls.Add(Me.optExcludeFolder) - Me.grpExclude.Location = New System.Drawing.Point(17, 43) - Me.grpExclude.Name = "grpExclude" - Me.grpExclude.Size = New System.Drawing.Size(310, 47) - Me.grpExclude.TabIndex = 0 - Me.grpExclude.TabStop = False - Me.grpExclude.Text = "Choose any files or folders to exclude from the backup:" - ' - 'optExcludeSpecificFile - ' - Me.optExcludeSpecificFile.AutoSize = True - Me.optExcludeSpecificFile.Location = New System.Drawing.Point(80, 19) - Me.optExcludeSpecificFile.Name = "optExcludeSpecificFile" - Me.optExcludeSpecificFile.Size = New System.Drawing.Size(82, 17) - Me.optExcludeSpecificFile.TabIndex = 2 - Me.optExcludeSpecificFile.TabStop = True - Me.optExcludeSpecificFile.Text = "Specific File" - Me.optExcludeSpecificFile.UseVisualStyleBackColor = True - ' - 'btnExcludeBrowse - ' - Me.btnExcludeBrowse.Location = New System.Drawing.Point(229, 16) - Me.btnExcludeBrowse.Name = "btnExcludeBrowse" - Me.btnExcludeBrowse.Size = New System.Drawing.Size(75, 23) - Me.btnExcludeBrowse.TabIndex = 4 - Me.btnExcludeBrowse.Text = "&Browse..." - Me.btnExcludeBrowse.UseVisualStyleBackColor = True - ' - 'optExcludeFileType - ' - Me.optExcludeFileType.AutoSize = True - Me.optExcludeFileType.Location = New System.Drawing.Point(6, 19) - Me.optExcludeFileType.Name = "optExcludeFileType" - Me.optExcludeFileType.Size = New System.Drawing.Size(68, 17) - Me.optExcludeFileType.TabIndex = 1 - Me.optExcludeFileType.TabStop = True - Me.optExcludeFileType.Text = "File Type" - Me.optExcludeFileType.UseVisualStyleBackColor = True - ' - 'optExcludeFolder - ' - Me.optExcludeFolder.AutoSize = True - Me.optExcludeFolder.Location = New System.Drawing.Point(168, 19) - Me.optExcludeFolder.Name = "optExcludeFolder" - Me.optExcludeFolder.Size = New System.Drawing.Size(54, 17) - Me.optExcludeFolder.TabIndex = 3 - Me.optExcludeFolder.TabStop = True - Me.optExcludeFolder.Text = "Folder" - Me.optExcludeFolder.UseVisualStyleBackColor = True - ' - 'btnStep4Clear - ' - Me.btnStep4Clear.Location = New System.Drawing.Point(253, 93) - Me.btnStep4Clear.Name = "btnStep4Clear" - Me.btnStep4Clear.Size = New System.Drawing.Size(75, 23) - Me.btnStep4Clear.TabIndex = 6 - Me.btnStep4Clear.Text = "&Clear" - Me.btnStep4Clear.UseVisualStyleBackColor = True - ' 'lblStep4Title ' Me.lblStep4Title.AutoSize = True @@ -525,7 +375,7 @@ Partial Class frmAddWizard Me.lblStep4Title.Location = New System.Drawing.Point(14, 11) Me.lblStep4Title.Name = "lblStep4Title" Me.lblStep4Title.Size = New System.Drawing.Size(201, 20) - Me.lblStep4Title.TabIndex = 16 + Me.lblStep4Title.TabIndex = 0 Me.lblStep4Title.Text = "Exclude Files or Folders" ' 'lblStep4Instructions @@ -533,17 +383,18 @@ Partial Class frmAddWizard Me.lblStep4Instructions.Location = New System.Drawing.Point(14, 126) Me.lblStep4Instructions.Name = "lblStep4Instructions" Me.lblStep4Instructions.Size = New System.Drawing.Size(303, 59) - Me.lblStep4Instructions.TabIndex = 12 + Me.lblStep4Instructions.TabIndex = 5 Me.lblStep4Instructions.Text = resources.GetString("lblStep4Instructions.Text") ' 'txtExcludeList ' - Me.txtExcludeList.Location = New System.Drawing.Point(18, 95) + Me.txtExcludeList.Location = New System.Drawing.Point(221, 13) Me.txtExcludeList.Name = "txtExcludeList" Me.txtExcludeList.ReadOnly = True - Me.txtExcludeList.Size = New System.Drawing.Size(229, 20) - Me.txtExcludeList.TabIndex = 5 + Me.txtExcludeList.Size = New System.Drawing.Size(128, 20) + Me.txtExcludeList.TabIndex = 4 Me.txtExcludeList.TabStop = False + Me.txtExcludeList.Visible = False ' 'tbPage5 ' @@ -613,16 +464,79 @@ Partial Class frmAddWizard Me.btnBack.Text = "&Back" Me.btnBack.UseVisualStyleBackColor = True ' - 'optFileTypeFolder + 'btnInclude ' - Me.optFileTypeFolder.AutoSize = True - Me.optFileTypeFolder.Location = New System.Drawing.Point(168, 19) - Me.optFileTypeFolder.Name = "optFileTypeFolder" - Me.optFileTypeFolder.Size = New System.Drawing.Size(54, 17) - Me.optFileTypeFolder.TabIndex = 4 - Me.optFileTypeFolder.TabStop = True - Me.optFileTypeFolder.Text = "Folder" - Me.optFileTypeFolder.UseVisualStyleBackColor = True + Me.btnInclude.Location = New System.Drawing.Point(17, 86) + Me.btnInclude.Name = "btnInclude" + Me.btnInclude.Size = New System.Drawing.Size(176, 23) + Me.btnInclude.TabIndex = 2 + Me.btnInclude.Text = "Choose items to in&clude..." + Me.btnInclude.UseVisualStyleBackColor = True + ' + 'lblFileTypes + ' + Me.lblFileTypes.AutoSize = True + Me.lblFileTypes.Location = New System.Drawing.Point(199, 91) + Me.lblFileTypes.Name = "lblFileTypes" + Me.lblFileTypes.Size = New System.Drawing.Size(89, 13) + Me.lblFileTypes.TabIndex = 3 + Me.lblFileTypes.Text = "0 item(s) selected" + ' + 'lblExclude + ' + Me.lblExclude.AutoSize = True + Me.lblExclude.Location = New System.Drawing.Point(199, 91) + Me.lblExclude.Name = "lblExclude" + Me.lblExclude.Size = New System.Drawing.Size(89, 13) + Me.lblExclude.TabIndex = 3 + Me.lblExclude.Text = "0 item(s) selected" + ' + 'btnExclude + ' + Me.btnExclude.Location = New System.Drawing.Point(17, 86) + Me.btnExclude.Name = "btnExclude" + Me.btnExclude.Size = New System.Drawing.Size(176, 23) + Me.btnExclude.TabIndex = 2 + Me.btnExclude.Text = "Choose items to e&xclude..." + Me.btnExclude.UseVisualStyleBackColor = True + ' + 'lblExcludePath + ' + Me.lblExcludePath.AutoEllipsis = True + Me.lblExcludePath.Location = New System.Drawing.Point(14, 60) + Me.lblExcludePath.Name = "lblExcludePath" + Me.lblExcludePath.Size = New System.Drawing.Size(334, 13) + Me.lblExcludePath.TabIndex = 1 + Me.lblExcludePath.Text = "Save Path" + ' + 'lblIncludePath + ' + Me.lblIncludePath.AutoEllipsis = True + Me.lblIncludePath.Location = New System.Drawing.Point(14, 60) + Me.lblIncludePath.Name = "lblIncludePath" + Me.lblIncludePath.Size = New System.Drawing.Size(324, 13) + Me.lblIncludePath.TabIndex = 1 + Me.lblIncludePath.Text = "Save Path" + ' + 'lblIncludePathTitle + ' + Me.lblIncludePathTitle.AutoSize = True + Me.lblIncludePathTitle.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblIncludePathTitle.Location = New System.Drawing.Point(14, 45) + Me.lblIncludePathTitle.Name = "lblIncludePathTitle" + Me.lblIncludePathTitle.Size = New System.Drawing.Size(122, 13) + Me.lblIncludePathTitle.TabIndex = 6 + Me.lblIncludePathTitle.Text = "Saved Game Folder:" + ' + 'lblExcludePathTitle + ' + Me.lblExcludePathTitle.AutoSize = True + Me.lblExcludePathTitle.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.lblExcludePathTitle.Location = New System.Drawing.Point(14, 45) + Me.lblExcludePathTitle.Name = "lblExcludePathTitle" + Me.lblExcludePathTitle.Size = New System.Drawing.Size(122, 13) + Me.lblExcludePathTitle.TabIndex = 7 + Me.lblExcludePathTitle.Text = "Saved Game Folder:" ' 'frmAddWizard ' @@ -649,12 +563,8 @@ Partial Class frmAddWizard Me.tbPage3.PerformLayout() Me.tbPage3a.ResumeLayout(False) Me.tbPage3a.PerformLayout() - Me.grpFileTypes.ResumeLayout(False) - Me.grpFileTypes.PerformLayout() Me.tbPage4.ResumeLayout(False) Me.tbPage4.PerformLayout() - Me.grpExclude.ResumeLayout(False) - Me.grpExclude.PerformLayout() Me.tbPage5.ResumeLayout(False) Me.tbPage5.PerformLayout() Me.ResumeLayout(False) @@ -684,17 +594,10 @@ Partial Class frmAddWizard Friend WithEvents btnSaveBrowse As System.Windows.Forms.Button Friend WithEvents txtSavePath As System.Windows.Forms.TextBox Friend WithEvents lblStep3Intro As System.Windows.Forms.Label - Friend WithEvents btnFileTypeBrowse As System.Windows.Forms.Button Friend WithEvents txtFileTypes As System.Windows.Forms.TextBox - Friend WithEvents btnExcludeBrowse As System.Windows.Forms.Button Friend WithEvents txtExcludeList As System.Windows.Forms.TextBox - Friend WithEvents optSpecificFile As System.Windows.Forms.RadioButton - Friend WithEvents optFileType As System.Windows.Forms.RadioButton Friend WithEvents lblStep3aInstructions As System.Windows.Forms.Label - Friend WithEvents optExcludeFolder As System.Windows.Forms.RadioButton - Friend WithEvents optExcludeFileType As System.Windows.Forms.RadioButton Friend WithEvents lblStep4Instructions As System.Windows.Forms.Label - Friend WithEvents optExcludeSpecificFile As System.Windows.Forms.RadioButton Friend WithEvents lblStep3Instructions As System.Windows.Forms.Label Friend WithEvents lstSummary As System.Windows.Forms.ListView Friend WithEvents lblStep1Title As System.Windows.Forms.Label @@ -704,12 +607,12 @@ Partial Class frmAddWizard Friend WithEvents lblStep3aTitle As System.Windows.Forms.Label Friend WithEvents lblStep5Intro As System.Windows.Forms.Label Friend WithEvents lblStep5Title As System.Windows.Forms.Label - Friend WithEvents btnStep3aClear As System.Windows.Forms.Button - Friend WithEvents btnStep4Clear As System.Windows.Forms.Button - Friend WithEvents grpExclude As System.Windows.Forms.GroupBox - Friend WithEvents grpFileTypes As System.Windows.Forms.GroupBox - Friend WithEvents lbldBox As System.Windows.Forms.Label - Friend WithEvents btndBoxBrowse As System.Windows.Forms.Button - Friend WithEvents txtdBoxProcess As System.Windows.Forms.TextBox - Friend WithEvents optFileTypeFolder As RadioButton + Friend WithEvents lblFileTypes As Label + Friend WithEvents btnInclude As Button + Friend WithEvents lblExclude As Label + Friend WithEvents btnExclude As Button + Friend WithEvents lblIncludePath As Label + Friend WithEvents lblExcludePath As Label + Friend WithEvents lblIncludePathTitle As Label + Friend WithEvents lblExcludePathTitle As Label End Class diff --git a/GBM/Forms/frmAddWizard.vb b/GBM/Forms/frmAddWizard.vb index cac1f81..cd976e4 100644 --- a/GBM/Forms/frmAddWizard.vb +++ b/GBM/Forms/frmAddWizard.vb @@ -5,7 +5,6 @@ Public Class frmAddWizard Private oGameData As Hashtable Private oGameToSave As clsGame Private bDisableAdminWarning As Boolean = False - Private bIsDOSBoxGame As Boolean Property GameData As Hashtable Get @@ -28,13 +27,8 @@ Public Class frmAddWizard Private eCurrentStep As eSteps = eSteps.Step1 Private Sub FormInit() - btndBoxBrowse.Visible = False - txtdBoxProcess.Visible = False - lbldBox.Visible = False chkFolderSave.Checked = True chkTimeStamp.Checked = False - optFileType.Checked = True - optExcludeFileType.Checked = True StepHandler() End Sub @@ -53,10 +47,6 @@ Public Class frmAddWizard Dim sProcessPath As String = Path.GetDirectoryName(sProcessFullPath) Dim sProcess As String = Path.GetFileNameWithoutExtension(sProcessFullPath) Dim sProcessSummaryText As String = Path.GetFileName(sProcessFullPath) & " (" & sProcessPath & ")" - Dim sdBoxProcessFullPath As String = String.Empty - Dim sdBoxProcessPath As String = String.Empty - Dim sdBoxProcess As String = String.Empty - Dim sdBoxProcessSummaryText As String = String.Empty Dim sSavePath As String = txtSavePath.Text Dim bIsAbsolute As Boolean = mgrPath.IsAbsolute(sSavePath) Dim bFolderBackup As Boolean = chkFolderSave.Checked @@ -72,14 +62,6 @@ Public Class frmAddWizard sSavePath = mgrPath.DetermineRelativePath(sProcessPath, sSavePath) End If - If bIsDOSBoxGame Then - sdBoxProcessFullPath = txtdBoxProcess.Text - sdBoxProcessPath = Path.GetDirectoryName(sdBoxProcessFullPath) - sdBoxProcess = Path.GetFileNameWithoutExtension(sdBoxProcessFullPath) - sdBoxProcessSummaryText = Path.GetFileName(sdBoxProcessFullPath) & " (" & sdBoxProcessPath & ")" - sProcess = sProcess.ToLower & ":" & sdBoxProcess - End If - 'Build Summary Listview lstSummary.Clear() lstSummary.Columns.Add("Item") @@ -87,8 +69,8 @@ Public Class frmAddWizard lstSummary.Columns(0).Width = 95 lstSummary.Columns(1).Width = 210 - sItems = {"Name", "Process", "DOS Process", "Absolute Path", "Save Path", "Folder Backup", "Specific Files", "Time Stamp", "Exclude List"} - sValues = {sName, sProcessSummaryText, StringEmptyText(sdBoxProcessSummaryText), mgrCommon.BooleanYesNo(bIsAbsolute), sSavePath, mgrCommon.BooleanYesNo(bFolderBackup), StringEmptyText(sFileType), mgrCommon.BooleanYesNo(bTimeStamp), StringEmptyText(sExcludeList)} + sItems = {"Name", "Process", "Absolute Path", "Save Path", "Folder Backup", "Specific Files", "Time Stamp", "Exclude List"} + sValues = {sName, sProcessSummaryText, mgrCommon.BooleanYesNo(bIsAbsolute), sSavePath, mgrCommon.BooleanYesNo(bFolderBackup), StringEmptyText(sFileType), mgrCommon.BooleanYesNo(bTimeStamp), StringEmptyText(sExcludeList)} For i = 0 To sItems.Length - 1 sItem = {sItems(i), sValues(i)} @@ -151,56 +133,6 @@ Public Class frmAddWizard Return True End Function - Private Function CheckforDOSBox(ByVal strpath As String) As Boolean - If strpath.ToLower.Contains("dosbox.exe") Then - bIsDOSBoxGame = True - lbldBox.Visible = True - txtdBoxProcess.Visible = True - btndBoxBrowse.Visible = True - If txtdBoxProcess.Text = String.Empty Then - If MsgBox("You have selected a DOSBox executable, to monitor DOS programs you need to also select the actual DOS executable file." & vbCrLf & vbCrLf & "Would you like to do this now?", MsgBoxStyle.YesNo, "Game Backup Monitor") = MsgBoxResult.Yes Then - DOSProcessBrowse() - End If - End If - Return True - Else - bIsDOSBoxGame = False - lbldBox.Visible = False - txtdBoxProcess.Text = String.Empty - txtdBoxProcess.Visible = False - btndBoxBrowse.Visible = False - Return False - End If - End Function - - Private Function ValidateDOSProcessPath(ByVal strPath As String, ByRef sErrorMessage As String) As Boolean - If strPath = String.Empty Then - sErrorMessage = "You must select the DOS game's executable file (.exe or .com) to continue." - txtProcessPath.Focus() - Return False - End If - - If Path.GetExtension(strPath.ToLower) <> ".exe" And Path.GetExtension(strPath.ToLower) <> ".com" Then - sErrorMessage = "The DOS file you selected is not an executable file. (.exe or .com)" - txtProcessPath.Focus() - Return False - End If - - If Not Path.IsPathRooted(strPath) Then - sErrorMessage = "The path to the DOS executable must be a full path." - txtProcessPath.Focus() - Return False - End If - - If Not File.Exists(strPath) Then - sErrorMessage = "The selected DOS executable file does not exist." - txtProcessPath.Focus() - Return False - End If - - Return True - End Function - Private Function ValidateProcessPath(ByVal strPath As String, ByRef sErrorMessage As String) As Boolean If strPath = String.Empty Then sErrorMessage = "You must select the game's executable file (.exe) to continue." @@ -324,21 +256,15 @@ Public Class frmAddWizard Case eSteps.Step2 If ValidateProcessPath(txtProcessPath.Text, sErrorMessage) Then - If CheckforDOSBox(txtProcessPath.Text) Then - If ValidateDOSProcessPath(txtdBoxProcess.Text, sErrorMessage) Then - eCurrentStep = eSteps.Step3 - Else - bError = True - End If - Else - eCurrentStep = eSteps.Step3 - End If + eCurrentStep = eSteps.Step3 Else bError = True End If Case eSteps.Step3 If ValidateSavePath(txtSavePath.Text, sErrorMessage) Then + lblIncludePath.Text = txtSavePath.Text + lblExcludePath.Text = txtSavePath.Text If chkFolderSave.Checked = False Then eCurrentStep = eSteps.Step3a Else @@ -416,24 +342,6 @@ Public Class frmAddWizard End If End Sub - Private Sub DOSProcessBrowse() - Dim sDefaultFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) - Dim sCurrentPath As String - Dim sNewPath As String - - If txtProcessPath.Text <> String.Empty Then - sCurrentPath = Path.GetDirectoryName(txtProcessPath.Text) - If Directory.Exists(sCurrentPath) Then - sDefaultFolder = sCurrentPath - End If - End If - - sNewPath = mgrCommon.OpenFileBrowser("Choose DOS executable file that starts the game", "*", _ - "", sDefaultFolder, False) - - If sNewPath <> String.Empty Then txtdBoxProcess.Text = sNewPath - End Sub - Private Sub ProcessBrowse() Dim sDefaultFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) Dim sCurrentPath As String @@ -468,113 +376,27 @@ Public Class frmAddWizard If sNewPath <> String.Empty Then txtSavePath.Text = sNewPath End Sub - Private Sub SaveTypeBrowse() - Dim sDefaultFolder As String = txtSavePath.Text - Dim sCurrentSaveType As String = txtFileTypes.Text - Dim sSaveType As String - Dim sTitle As String = String.Empty - Dim sSaveTypeList As String() + Private Sub UpdateBuilderLabel(ByVal sBuilderString As String, ByVal lbl As Label) + Dim iCount As Integer = sBuilderString.Split(":").Length - If optFileType.Checked Then - sTitle = "Choose the type of file to backup" - ElseIf optSpecificFile.Checked Then - sTitle = "Choose a specific file to backup" + If sBuilderString <> String.Empty And iCount > 0 Then + lbl.Text = iCount & " item(s) selected" Else - sTitle = "Choose a specific folder to backup" + lbl.Text = "0 Item(s) selected" End If - - If optFileType.Checked Or optSpecificFile.Checked Then - sSaveType = mgrCommon.OpenFileBrowser(sTitle, "*", "All", sDefaultFolder, False) - If sSaveType <> String.Empty Then - sSaveTypeList = sSaveType.Split("|") - For Each s As String In sSaveTypeList - If optFileType.Checked Then - sSaveType = "*" & Path.GetExtension(s) & ":" - Else - sSaveType = Path.GetFileName(s) & ":" - End If - - sSaveType = sSaveType.TrimEnd(":") - - If sCurrentSaveType <> String.Empty Then - sCurrentSaveType &= ":" & sSaveType - Else - sCurrentSaveType = sSaveType - End If - Next - End If - Else - sSaveType = mgrCommon.OpenFolderBrowser(sTitle, sDefaultFolder, False) - If sSaveType <> String.Empty Then - Dim sPath As String() = sSaveType.Split("\") - - If sCurrentSaveType <> String.Empty Then - sCurrentSaveType &= ":" & sPath(sPath.Length - 1) - Else - sCurrentSaveType = sPath(sPath.Length - 1) - End If - End If - End If - - txtFileTypes.Text = sCurrentSaveType End Sub - Private Sub ExcludeBrowse() - Dim sDefaultFolder As String = txtSavePath.Text - Dim sCurrentExclude As String = txtExcludeList.Text - Dim sExclude As String - Dim sExcludeList As String() - Dim sTitle As String = String.Empty + Private Sub OpenBuilder(ByVal sFormText As String, ByRef txtBox As TextBox) + Dim frm As New frmIncludeExclude + frm.FormName = sFormText + frm.BuilderString = txtBox.Text + frm.RootFolder = txtSavePath.Text - If optExcludeFileType.Checked Then - sTitle = "Choose the type of file(s) to exclude" - ElseIf optExcludeSpecificFile.Checked Then - sTitle = "Choose any file(s) to exclude" - Else - sTitle = "Choose a folder to exclude" - End If - - If optExcludeFileType.Checked Or optExcludeSpecificFile.Checked Then - sExclude = mgrCommon.OpenFileBrowser(sTitle, "*", "All", sDefaultFolder, True) - If sExclude <> String.Empty Then - sExcludeList = sExclude.Split("|") - For Each s As String In sExcludeList - If optExcludeFileType.Checked Then - sExclude = "*" & Path.GetExtension(s) & ":" - Else - sExclude = Path.GetFileName(s) & ":" - End If - - sExclude = sExclude.TrimEnd(":") - - If sCurrentExclude <> String.Empty Then - sCurrentExclude &= ":" & sExclude - Else - sCurrentExclude = sExclude - End If - Next - End If - Else - sExclude = mgrCommon.OpenFolderBrowser(sTitle, sDefaultFolder, False) - If sExclude <> String.Empty Then - Dim sPath As String() = sExclude.Split("\") - - If sCurrentExclude <> String.Empty Then - sCurrentExclude &= ":" & sPath(sPath.Length - 1) - Else - sCurrentExclude = sPath(sPath.Length - 1) - End If - End If - End If - - If sCurrentExclude <> String.Empty Then - txtExcludeList.Text = sCurrentExclude - End If + frm.ShowDialog() + txtBox.Text = frm.BuilderString End Sub - - Private Sub btnBack_Click(sender As Object, e As EventArgs) Handles btnBack.Click ValidateBack() End Sub @@ -604,10 +426,6 @@ Public Class frmAddWizard Next End Sub - Private Sub btndBoxBrowse_Click(sender As Object, e As EventArgs) Handles btndBoxBrowse.Click - DOSProcessBrowse() - End Sub - Private Sub btnProcessBrowse_Click(sender As Object, e As EventArgs) Handles btnProcessBrowse.Click ProcessBrowse() End Sub @@ -616,19 +434,11 @@ Public Class frmAddWizard SavePathBrowse() End Sub - Private Sub btnFileTypeBrowse_Click(sender As Object, e As EventArgs) Handles btnFileTypeBrowse.Click - SaveTypeBrowse() - End Sub - - Private Sub btnExcludeBrowse_Click(sender As Object, e As EventArgs) Handles btnExcludeBrowse.Click - ExcludeBrowse() - End Sub - - Private Sub btnStep4Clear_Click(sender As Object, e As EventArgs) Handles btnStep4Clear.Click + Private Sub btnStep4Clear_Click(sender As Object, e As EventArgs) txtExcludeList.Clear() End Sub - Private Sub btnStep3aClear_Click(sender As Object, e As EventArgs) Handles btnStep3aClear.Click + Private Sub btnStep3aClear_Click(sender As Object, e As EventArgs) txtFileTypes.Clear() End Sub @@ -636,4 +446,13 @@ Public Class frmAddWizard txtFileTypes.Clear() End Sub + Private Sub btnInclude_Click(sender As Object, e As EventArgs) Handles btnInclude.Click + OpenBuilder("Include", txtFileTypes) + UpdateBuilderLabel(txtFileTypes.Text, lblFileTypes) + End Sub + + Private Sub btnExclude_Click(sender As Object, e As EventArgs) Handles btnExclude.Click + OpenBuilder("Exclude", txtExcludeList) + UpdateBuilderLabel(txtExcludeList.Text, lblExclude) + End Sub End Class \ No newline at end of file diff --git a/GBM/Forms/frmGameManager.vb b/GBM/Forms/frmGameManager.vb index ad2b960..a5f95b6 100644 --- a/GBM/Forms/frmGameManager.vb +++ b/GBM/Forms/frmGameManager.vb @@ -445,7 +445,7 @@ Public Class frmGameManager CurrentBackupItem.RelativeRestorePath = CurrentGame.ProcessPath & "\" & CurrentBackupItem.RestorePath Else sProcess = CurrentGame.TrueProcess - If CurrentGame.Duplicate = True Or CurrentGame.ProcessName.Contains("dosbox") Then bNoAuto = True + If mgrCommon.IsProcessNotSearchable(CurrentGame) Then bNoAuto = True sRestorePath = mgrPath.ProcessPathSearch(CurrentBackupItem.Name, sProcess, CurrentBackupItem.Name & " uses a relative path and the game path has not been set.", bNoAuto) If sRestorePath <> String.Empty Then diff --git a/GBM/Forms/frmMain.vb b/GBM/Forms/frmMain.vb index 8fd951d..3038ae4 100644 --- a/GBM/Forms/frmMain.vb +++ b/GBM/Forms/frmMain.vb @@ -206,7 +206,7 @@ Public Class frmMain If oGame.AbsolutePath = False Then If oGame.ProcessPath = String.Empty Then - If oGame.Duplicate = True Or oGame.ProcessName.Contains("dosbox") Then bNoAuto = True + If mgrCommon.IsProcessNotSearchable(oGame) Then bNoAuto = True oGame.ProcessPath = mgrPath.ProcessPathSearch(oGame.Name, oGame.TrueProcess, oGame.Name & " uses a relative path and has never been detected on this computer.", bNoAuto) End If diff --git a/GBM/Managers/mgrCommon.vb b/GBM/Managers/mgrCommon.vb index f4df806..e76cada 100644 --- a/GBM/Managers/mgrCommon.vb +++ b/GBM/Managers/mgrCommon.vb @@ -91,6 +91,21 @@ Public Class mgrCommon Return String.Empty End Function + Public Shared Function IsProcessNotSearchable(ByVal oGame As clsGame) As Boolean + Dim sExemptList As String() = {"dosbox", "scummvm"} + Dim bFound As Boolean = False + + For Each s As String In sExemptList + If oGame.ProcessName.ToLower.Contains(s) Then bFound = True + Next + + If bFound Or oGame.Duplicate = True Then + Return True + Else + Return False + End If + End Function + Public Shared Function IsElevated() As Boolean If My.User.IsInRole(ApplicationServices.BuiltInRole.Administrator) Then Return True diff --git a/GBM/Managers/mgrPath.vb b/GBM/Managers/mgrPath.vb index aa19c9a..15426ac 100644 --- a/GBM/Managers/mgrPath.vb +++ b/GBM/Managers/mgrPath.vb @@ -121,6 +121,7 @@ Public Class mgrPath Return sCheckString.Trim End Function + Public Shared Function DetermineRelativePath(ByVal sProcessPath As String, ByVal sSavePath As String) As String Dim sPath1Array As String() Dim sPath2Array As String() diff --git a/GBM/Managers/mgrProcesses.vb b/GBM/Managers/mgrProcesses.vb index 8deebba..58725f2 100644 --- a/GBM/Managers/mgrProcesses.vb +++ b/GBM/Managers/mgrProcesses.vb @@ -77,15 +77,7 @@ Public Class mgrProcesses bDuplicates = True oDuplicateGames.Clear() For Each o As clsGame In hshScanList.Values - If o.ProcessName.Contains("dosbox") Then - If o.ProcessName.Split(":").Length = 3 Then - sProcess = o.ProcessName.Remove(o.ProcessName.LastIndexOf(":")) - Else - sProcess = o.ProcessName - End If - Else - sProcess = o.ProcessName.Split(":")(0) - End If + sProcess = o.ProcessName.Split(":")(0) If o.Duplicate = True And sProcess = oGame.TrueProcess Then oDuplicateGames.Add(o.ShallowCopy) @@ -95,23 +87,10 @@ Public Class mgrProcesses Public Function SearchRunningProcesses(ByVal hshScanList As Hashtable, ByRef bNeedsPath As Boolean, ByRef iErrorCode As Integer) As Boolean Dim prsList() As Process = Process.GetProcesses - Dim sDBoxProcess As String() Dim sProcessCheck As String = String.Empty For Each prsCurrent As Process In prsList - 'Handle DOSBox Processes - If prsCurrent.ProcessName.ToLower = "dosbox" Then - sDBoxProcess = prsCurrent.MainWindowTitle.Split(":") - 'If the dosbox process title doesn't have 3 elements it's not ready yet. - If sDBoxProcess.Length = 3 Then - sProcessCheck = "dosbox:" & sDBoxProcess(2).Trim - Else - 'Drop out for now - Return False - End If - Else - sProcessCheck = prsCurrent.ProcessName - End If + sProcessCheck = prsCurrent.ProcessName If hshScanList.ContainsKey(sProcessCheck) Then prsFoundProcess = prsCurrent diff --git a/GBM/Managers/mgrRestore.vb b/GBM/Managers/mgrRestore.vb index fdc2378..e25d263 100644 --- a/GBM/Managers/mgrRestore.vb +++ b/GBM/Managers/mgrRestore.vb @@ -37,7 +37,7 @@ Public Class mgrRestore oRestoreInfo.RelativeRestorePath = oGame.ProcessPath & "\" & oRestoreInfo.RestorePath Else sProcess = oGame.TrueProcess - If oGame.Duplicate = True Or oGame.ProcessName.Contains("dosbox") Then bNoAuto = True + If mgrCommon.IsProcessNotSearchable(oGame) Then bNoAuto = True sRestorePath = mgrPath.ProcessPathSearch(oRestoreInfo.Name, sProcess, oRestoreInfo.Name & " uses a relative path and has never been detected on this computer.", bNoAuto) If sRestorePath <> String.Empty Then diff --git a/GBM/Managers/mgrSQLite.vb b/GBM/Managers/mgrSQLite.vb index 159e7f5..481f19c 100644 --- a/GBM/Managers/mgrSQLite.vb +++ b/GBM/Managers/mgrSQLite.vb @@ -326,6 +326,38 @@ Public Class mgrSQLite End Sub + Public Sub UpgradeDOSBox() + Dim sSQL As String + Dim sCurrentID As String + Dim sCurrentName As String + Dim sCurrentProcess As String + Dim sDosProcess As String + Dim sNewName As String + Dim oData As DataSet + Dim hshParams As Hashtable + Dim oParamList As New List(Of Hashtable) + + sSQL = "SELECT MonitorID, Name, Process FROM monitorlist WHERE Process LIKE '%dosbox:%'" + oData = ReadParamData(sSQL, New Hashtable) + + sSQL = "UPDATE monitorlist SET Name=@NewName, Process=@NewProcess WHERE MonitorID=@ID;" + + For Each dr As DataRow In oData.Tables(0).Rows + hshParams = New Hashtable + sCurrentID = CStr(dr("MonitorID")) + sCurrentName = CStr(dr("Name")) + sCurrentProcess = CStr(dr("Process")) + sDosProcess = sCurrentProcess.Split(":")(1) + sNewName = sCurrentName & " (" & sDosProcess & ")" + hshParams.Add("NewName", sNewName) + hshParams.Add("NewProcess", "DOSBox") + hshParams.Add("ID", sCurrentID) + oParamList.Add(hshParams) + Next + + RunMassParamQuery(sSQL, oParamList) + End Sub + Public Sub DatabaseUpgrade() Dim sSQL As String @@ -480,6 +512,30 @@ Public Class mgrSQLite End If End If + '0.95 Upgrade + If GetDatabaseVersion() < 95 Then + If eDatabase = Database.Local Then + 'Backup DB before starting + BackupDB("v94") + + UpgradeDOSBox() + + sSQL = "PRAGMA user_version=95" + + RunParamQuery(sSQL, New Hashtable) + End If + If eDatabase = Database.Remote Then + 'Backup DB before starting + BackupDB("v94") + + UpgradeDOSBox() + + sSQL = "PRAGMA user_version=95" + + RunParamQuery(sSQL, New Hashtable) + End If + End If + End Sub Public Function GetDBSize() As Long