public RegistryEditor(VirtPackage virtPackage, DelegateRequireElevation requireElevation, TreeView fsFolderTree, ListView fsFilesList, Label fsFolderInfoFullName, ComboBox fsFolderInfoIsolationCombo, ToolStripButton regRemoveBtn, ToolStripButton regEditBtn) { this.virtPackage = virtPackage; this.requireElevation = requireElevation; this.fsFolderTree = fsFolderTree; this.fsFilesList = fsFilesList; this.fsFolderInfoFullName = fsFolderInfoFullName; this.fsFolderInfoIsolationCombo = fsFolderInfoIsolationCombo; this.regRemoveBtn = regRemoveBtn; this.regEditBtn = regEditBtn; fsFolderInfoFullName.Text = ""; fsFolderInfoIsolationCombo.Text = ""; fsFolderInfoIsolationCombo.Items.Add(PackageEditor.Messages.Messages.fullAccess); fsFolderInfoIsolationCombo.Items.Add(PackageEditor.Messages.Messages.isolated); fsFolderInfoIsolationCombo.Items.Add(PackageEditor.Messages.Messages.strictlyIsolated); fsFolderTree.AfterSelect += OnFolderTreeSelect; fsFolderInfoIsolationCombo.SelectionChangeCommitted += OnFolderSandboxChange; regRemoveBtn.Click += OnRemoveBtnClick; regEditBtn.Click += OnEditClick; dirty = false; treeHelper = new TreeHelper(virtPackage); // delegate for AddFileOrFolder init Del_AddFOrF = new DelegateAddFileOrFolder(this.AddFileOrFolder); }
public ADPermissionsForm(VirtPackage virtPackage) { this.virtPackage = virtPackage; allowedEntities = new List<ADEntity>(); deniedEntities = new List<ADEntity>(); InitializeComponent(); }
public bool Do(VirtPackage virtPackage, ref bool dirty) { String oldValue = virtPackage.GetProperty("BaseDirName"); String newValue; propertyLocalStorageCustomDir.Text = ""; if (oldValue == "") propertyLocalStorageDefault.Checked = true; else if (oldValue.Equals("%ExeDir%\\%AppID%.cameyo.data", StringComparison.InvariantCultureIgnoreCase)) propertyLocalStorageExeDir.Checked = true; else { propertyLocalStorageCustom.Checked = true; propertyLocalStorageCustomDir.Text = oldValue; } if (ShowDialog() == DialogResult.OK) { if (propertyLocalStorageDefault.Checked) newValue = ""; else if (propertyLocalStorageExeDir.Checked) newValue = "%ExeDir%\\%AppID%.cameyo.data"; else newValue = propertyLocalStorageCustomDir.Text; if (newValue != oldValue) { virtPackage.SetProperty("BaseDirName", newValue); dirty = true; } return true; } else return false; }
public CustomEventsForm(VirtPackage virtPackage) { this.virtPackage = virtPackage; onStartUnvirtualized = new List<CustomEvent>(); onStartVirtualized = new List<CustomEvent>(); onStopVirtualized = new List<CustomEvent>(); onStopUnvirtualized = new List<CustomEvent>(); InitializeComponent(); }
public AutoUpdateForm(VirtPackage virtPackage) { this.virtPackage = virtPackage; InitializeComponent(); txtFinish = literalFinish.Text; txtNext = btnNext.Text; tbVersion.Text = virtPackage.GetProperty("Version"); tbLocation.Text = virtPackage.GetProperty("AutoUpdate"); if (string.IsNullOrEmpty(tbLocation.Text)) { radioDisableFeature.Checked = true; tbLocation.Text = @"\\server\apps\" + Path.ChangeExtension(Path.GetFileName(virtPackage.openedFile), ".xml"); } else { autoUpdateAlreadyConfigured = true; radioEnableFeature.Checked = true; } }
public FileSystemEditor(VirtPackage virtPackage, TreeView fsFolderTree, ListView fsFilesList, Label fsFolderInfoFullName, ComboBox fsFolderInfoIsolationCombo, ToolStripButton fsAddBtn, ToolStripButton fsRemoveBtn, ToolStripButton fsAddEmptyDirBtn, ToolStripButton fsSaveFileAsBtn, ToolStripButton fsAddDirBtn) { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); this.virtPackage = virtPackage; this.fsFolderTree = fsFolderTree; this.fsFilesList = fsFilesList; this.fsFolderInfoFullName = fsFolderInfoFullName; this.fsFolderInfoIsolationCombo = fsFolderInfoIsolationCombo; this.fsAddBtn = fsAddBtn; this.fsRemoveBtn = fsRemoveBtn; this.fsAddEmptyDirBtn = fsAddEmptyDirBtn; this.fsSaveFileAsBtn = fsSaveFileAsBtn; this.fsAddDirBtn = fsAddDirBtn; fsFolderInfoFullName.Text = ""; fsFolderInfoIsolationCombo.Text = ""; fsFolderInfoIsolationCombo.Items.Add(PackageEditor.Messages.Messages.fullAccess); fsFolderInfoIsolationCombo.Items.Add(PackageEditor.Messages.Messages.isolated); fsFolderInfoIsolationCombo.Items.Add(PackageEditor.Messages.Messages.strictlyIsolated); fsFolderTree.AfterSelect += OnFolderTreeSelect; fsFolderInfoIsolationCombo.SelectionChangeCommitted += OnFolderSandboxChange; fsAddBtn.Click += OnAddBtnClick; fsAddDirBtn.Click += OnAddDirBtnClick; fsRemoveBtn.Click += OnRemoveBtnClick; fsAddEmptyDirBtn.Click += OnAddEmptyDirBtnClick; fsSaveFileAsBtn.Click += OnSaveFileAsBtnClick; fsFilesList.KeyDown += Vfs_KeyDown; fsFolderTree.KeyDown += Vfs_KeyDown; dirty = false; treeHelper = new TreeHelper(virtPackage); // delegate for AddFileOrFolderRecursive init Del_AddFOrFR = new DelegateAddFileOrFolderRecursive(this.AddFileOrFolderRecursive); }
public AutoLaunchEditItemForm(VirtPackage virtPackage, FileSystemEditor fileSystemEditor) { InitializeComponent(); this.virtPackage = virtPackage; this.fileSystemEditor = fileSystemEditor; }
public VirtFilesBrowse(VirtPackage virtPackage, FileSystemEditor fileSystemEditor) { InitializeComponent(); this.virtPackage = virtPackage; this.fileSystemEditor = fileSystemEditor; }
public MainForm(string packageExeFile, bool notifyPackageBuilt) { InitializeComponent(); dragging = false; // helpVirtMode SplitTextHelp(propertyVirtModeRam, out helpVirtModeRam); SplitTextHelp(propertyVirtModeDisk, out helpVirtModeDisk); // helpIsolationMode SplitTextHelp(propertyIsolationDataMode, out helpIsolationModeData); SplitTextHelp(propertyIsolationIsolated, out helpIsolationModeIsolated); SplitTextHelp(propertyIsolationMerge, out helpIsolationModeFull); // panelWelcome panelWelcome.Parent = this; panelWelcome.BringToFront(); panelWelcome.Dock = DockStyle.None; panelWelcome.Dock = DockStyle.Fill; tabControl.TabPages.Remove(tabWelcome); this.Text = CaptionText(); // delegate for PackageOpen init Del_Open = new DelegatePackageOpen(this.PackageOpen); tabControl.Visible = false; panelWelcome.Visible = !tabControl.Visible; regLoaded = false; dirty = dirtyIcon = false; virtPackage = new VirtPackage(); mru = new MRU("Software\\Cameyo\\Packager\\MRU"); fsEditor = new FileSystemEditor(virtPackage, fsFolderTree, fsFilesList, fsFolderInfoFullName, fsFolderInfoIsolationCombo, fsAddBtn, fsRemoveBtn, fsAddEmptyDirBtn, fsSaveFileAsBtn, fsAddDirBtn); regEditor = new RegistryEditor(virtPackage, new RegistryEditor.DelegateRequireElevation(RequireElevation), regFolderTree, regFilesList, regFolderInfoFullName, regFolderInfoIsolationCombo, regRemoveBtn, regEditBtn); regFilesList.DoubleClickActivation = true; Editors = new Control[] { tbFile, tbValue, tbType, tbSize }; EnableDisablePackageControls(false); // No package opened yet; disable Save menu etc if (packageExeFile != "" && !packageExeFile.Equals("/OPEN", StringComparison.InvariantCultureIgnoreCase)) { if (PackageOpen(packageExeFile) && notifyPackageBuilt) { PackageBuiltNotify packageBuiltNotify = new PackageBuiltNotify(); String friendlyPath = packageExeFile; int pos = friendlyPath.ToUpper().IndexOf("\\DOCUMENTS\\"); if (pos == -1) pos = friendlyPath.ToUpper().IndexOf("\\MY DOCUMENTS\\"); if (pos != -1) friendlyPath = friendlyPath.Substring(pos + 1); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); packageBuiltNotify.Do(PackageEditor.Messages.Messages.packageBuiltOk, packageExeFile, friendlyPath, "PackageBuiltNotify"); } } #if DropBox if (!System.IO.File.Exists(Application.StartupPath + "\\AppLimit.CloudComputing.oAuth.dll") || !System.IO.File.Exists(Application.StartupPath + "\\AppLimit.CloudComputing.SharpBox.dll") || !System.IO.File.Exists(Application.StartupPath + "\\Newtonsoft.Json.Net20.dll")) { dropboxLabel.Hide(); dropboxButton.Hide(); resetCredLink.Hide(); MessageBox.Show("This version is compiled with DropBox funtionality, but one or more of the dlls needed are missing:\nAppLimit.CloudComputing.oAuth.dll\nAppLimit.CloudComputing.SharpBox.dll\nNewtonsoft.Json.Net20.dll\n\nThe button will be hidden", "Missing DLL", MessageBoxButtons.OK, MessageBoxIcon.Warning); } #else dropboxLabel.Hide(); dropboxButton.Hide(); //resetCredLink.Hide(); #endif // Display logo /*string branding = ""; try { Environment.GetEnvironmentVariable("CAMEYO_RO_PROPERTY_BRANDING"); } catch { } propertyDisplayLogo.Visible = !string.IsNullOrEmpty(branding); // Freeware Cameyo does not have this feature*/ // Culture langToolStripMenuItem.DropDownItems.Clear(); ToolStripMenuItem item; foreach (Cameyo.OpenSrc.Common.LangItem lang in Cameyo.OpenSrc.Common.LangItem.SupportedLangs()) { item = new ToolStripMenuItem(lang.DisplayName) { Tag = lang.Culture }; item.Click += langMenuItem_Click; langToolStripMenuItem.DropDownItems.Add(item); } CurLanguageMenuItem().Checked = true; }
private bool PackageOpen(String packageExeFile, bool displayWaitMsg, out VirtPackage.APIRET apiRet) { if (File.Exists(Path.ChangeExtension(packageExeFile, ".dat"))) packageExeFile = Path.ChangeExtension(packageExeFile, ".dat"); retry: System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); bool ret = false; apiRet = 0; if (virtPackage.opened && !PackageClose()) // User doesn't want to discard changes return false; if (displayWaitMsg) PleaseWait.PleaseWaitBegin(PackageEditor.Messages.Messages.openingPackage, PackageEditor.Messages.Messages.opening + " " + System.IO.Path.GetFileName(packageExeFile) + "...", packageExeFile); System.Drawing.Icon exeIcon = null; try { exeIcon = Win32Function.getIconFromFile(packageExeFile); // Must be done before PackageOpen is called } catch { } // virtPackage.Open if (!string.IsNullOrEmpty(memorizedPassword)) ret = virtPackage.Open(packageExeFile + "|" + memorizedPassword, out apiRet); else // ret = virtPackage.Open(packageExeFile, out apiRet); if (apiRet == VirtPackage.APIRET.PASSWORD_REQUIRED || apiRet == VirtPackage.APIRET.PASSWORD_MISMATCH) { string password = ""; while (string.IsNullOrEmpty(password)) { if (displayWaitMsg) // Hide progress window PleaseWait.PleaseWaitEnd(); // Otherwise it'll hide our below MessageBox var passwordInput = new PasswordInput(); if (passwordInput.ShowDialog() != System.Windows.Forms.DialogResult.OK) return false; password = passwordInput.tbPassword.Text; ret = virtPackage.Open(packageExeFile + "|" + password, out apiRet); if (apiRet == VirtPackage.APIRET.SUCCESS) memorizedPassword = password; if (apiRet == VirtPackage.APIRET.PASSWORD_MISMATCH) { MessageBox.Show("Incorrect password"); password = ""; } if (displayWaitMsg) // Restore progress window PleaseWait.PleaseWaitBegin(PackageEditor.Messages.Messages.openingPackage, PackageEditor.Messages.Messages.opening + " " + System.IO.Path.GetFileName(packageExeFile) + "...", packageExeFile); } } else if (apiRet != VirtPackage.APIRET.SUCCESS) { } // OLD_VERSION conversion if (!ret && apiRet == VirtPackage.APIRET.OLD_VERSION) { if (displayWaitMsg) // Hide progress window PleaseWait.PleaseWaitEnd(); // Otherwise it'll hide our below MessageBox if (MessageBox.Show("This package was built with an older version and needs to be converted.\nConvert now?", "Conversion required", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.Yes) { int exitCode = 0; if (displayWaitMsg) // Restore progress window PleaseWait.PleaseWaitBegin(PackageEditor.Messages.Messages.openingPackage, "Converting " + System.IO.Path.GetFileName(packageExeFile) + "...", packageExeFile); // Init file names: old, new string newPkgFile = packageExeFile, oldPkgFile = packageExeFile; int pos = newPkgFile.LastIndexOf('.'); newPkgFile = newPkgFile.Insert(pos, ".new"); oldPkgFile = oldPkgFile.Insert(pos, ".old"); // Check whether target file already exists bool proceed = true; if (File.Exists(newPkgFile) && MessageBox.Show("Warning: output file will be overwritten:\n" + newPkgFile + "\n" + "Proceed?", "Confirm", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No) proceed = false; if (proceed) { bool convertedOk = (ExecProg(PackagerExe(), "-Quiet -ConvertOldPkg \"" + packageExeFile + "\"", true, ref exitCode) && exitCode == 0); if (displayWaitMsg) // Hide progress window PleaseWait.PleaseWaitEnd(); // Otherwise it'll hide our below MessageBox if (convertedOk) { bool trouble = false; try { File.Delete(oldPkgFile); } catch { } try { File.Move(packageExeFile, oldPkgFile); } catch { MessageBox.Show("Package could not be renamed to:\n" + oldPkgFile); trouble = true; } try { File.Move(newPkgFile, packageExeFile); } catch { MessageBox.Show("New package could not be renamed to:\n" + packageExeFile); trouble = true; } if (!trouble) { //ret = virtPackage.Open(packageExeFile, out apiRet); MessageBox.Show("Package was successfully converted. Your old package was saved in:\n" + oldPkgFile); goto retry; // Takes care of password etc } } else MessageBox.Show("Error converting package! " + exitCode); } } } if (ret) { regLoaded = false; dirty = dirtyIcon = false; this.OnPackageOpen(exeIcon); fsEditor.OnPackageOpen(); // regEditor (threaded) regProgressBar.Visible = true; regToolStrip.Visible = false; regSplitContainer.Visible = false; regProgressTimer.Enabled = true; ThreadedRegLoadStop(-1); //2.5:was here:regLoadThread = new Thread(ThreadedRegLoad); //2.5:was here:regLoadThread.Start(); tabControl.SelectedIndex = 0; EnableDisablePackageControls(true); mru.AddFile(packageExeFile); ret = true; } else ret = false; if (displayWaitMsg) PleaseWait.PleaseWaitEnd(); return ret; }
private bool PackageOpen(String packageExeFile, bool displayWaitMsg, out VirtPackage.APIRET apiRet) { bool ret; apiRet = 0; if (virtPackage.opened && !PackageClose()) // User doesn't want to discard changes return false; if (displayWaitMsg) { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); PleaseWait.PleaseWaitBegin(PackageEditor.Messages.Messages.openingPackage, PackageEditor.Messages.Messages.opening + " " + System.IO.Path.GetFileName(packageExeFile) + "...", packageExeFile); } if (virtPackage.Open(packageExeFile, out apiRet)) { regLoaded = false; dirty = false; this.OnPackageOpen(); fsEditor.OnPackageOpen(); // regEditor (threaded) regProgressBar.Visible = true; regToolStrip.Visible = false; regSplitContainer.Visible = false; regProgressTimer.Enabled = true; ThreadedRegLoadStop(); regLoadThread = new Thread(ThreadedRegLoad); regLoadThread.Start(); tabControl.SelectedIndex = 0; EnableDisablePackageControls(true); mru.AddFile(packageExeFile); ret = true; } else ret = false; if (displayWaitMsg) PleaseWait.PleaseWaitEnd(); return ret; }
public FileProperties(VirtPackage virtPackage) { InitializeComponent(); this.virtPackage = virtPackage; }
public bool Do(VirtPackage virtPackage, ref bool dirty) { String oldValue = virtPackage.GetProperty("BaseDirName"); String newValue; // BaseDirName //propertyLocalStorageCustomDir.Text = ""; propertyLocalStorageCustomDir.Text = DefaultBaseDir; // Shows user how to build this path if (oldValue == "") propertyLocalStorageDefault.Checked = true; else if (oldValue.Equals("%ExeDir%\\%AppID%.cameyo.files", StringComparison.InvariantCultureIgnoreCase)) propertyLocalStorageExeDir.Checked = true; else { propertyLocalStorageCustom.Checked = true; propertyLocalStorageCustomDir.Text = oldValue; } // DataDirName string DefaultDataDirName = System.IO.Path.Combine(propertyLocalStorageCustomDir.Text, "CHANGES"); propertyDataDirName.Text = virtPackage.GetProperty("DataDirName").Trim(); propertyDataDir.Checked = !string.IsNullOrEmpty(propertyDataDirName.Text); if (propertyDataDirName.Text == "") propertyDataDirName.Text = DefaultDataDirName; // Show user how to build this path propertyDataDir_CheckedChanged(null, null); propertyLocalStorageCustom_CheckedChanged(null, null); retry: if (ShowDialog() == DialogResult.OK) { propertyLocalStorageCustomDir.Text = propertyLocalStorageCustomDir.Text.Trim(); propertyDataDirName.Text = propertyDataDirName.Text.Trim(); // Validate if (propertyLocalStorageCustom.Checked && propertyLocalStorageCustomDir.Text.Trim('\\').IndexOf('\\') == -1 && MessageBox.Show(PackageEditor.Messages.Messages.storageDirSubdirWarning + "\n" + propertyLocalStorageCustomDir.Text, "", MessageBoxButtons.YesNo) != System.Windows.Forms.DialogResult.Yes) goto retry; if (propertyDataDir.Checked && propertyDataDirName.Text.Trim('\\').IndexOf('\\') == -1 && MessageBox.Show(PackageEditor.Messages.Messages.storageDirSubdirWarning + "\n" + propertyDataDirName.Text, "", MessageBoxButtons.YesNo) != System.Windows.Forms.DialogResult.Yes) goto retry; // BaseDirName if (propertyLocalStorageCustomDir.Text.Equals(DefaultBaseDir, StringComparison.InvariantCultureIgnoreCase)) propertyLocalStorageCustomDir.Text = ""; if (propertyLocalStorageDefault.Checked) newValue = ""; else if (propertyLocalStorageExeDir.Checked) newValue = "%ExeDir%\\%AppID%.cameyo.files"; else newValue = propertyLocalStorageCustomDir.Text; if (newValue != oldValue) { virtPackage.SetProperty("BaseDirName", newValue); dirty = true; } // DataDirName if (!propertyDataDir.Checked) // Causes bug (Tom Ferratt case): || propertyDataDirName.Text.Equals(DefaultDataDirName, StringComparison.InvariantCultureIgnoreCase)) propertyDataDirName.Text = ""; virtPackage.SetProperty("DataDirName", propertyDataDirName.Text); return true; } else return false; }
public TreeHelper(VirtPackage virtPackage) { this.virtPackage = virtPackage; }